Problema en consulta (sql plus)
que tal?, tengo un problema.
tengo una tabla y en esta existe el campo salario el mismo que debe de aumentar en un 20% aquellos que anan menos de 1000, 15% para los q estan entre 1001 y 3000 y 5 % para los q ganan mas de 3000. este nuevo salario debe de aparecr en la columna nuevo_salario.
Lo estoy tratando de hacer con case o con If, pero en ambos me sale error, creo que en los dos casos solo agarra el valor que se encuentra en el campo y no en si el campo... el tipo de cambo es number(6,2).
Espero me puedan ayudar.
Carlos.
[email protected]
tengo una tabla y en esta existe el campo salario el mismo que debe de aumentar en un 20% aquellos que anan menos de 1000, 15% para los q estan entre 1001 y 3000 y 5 % para los q ganan mas de 3000. este nuevo salario debe de aparecr en la columna nuevo_salario.
Lo estoy tratando de hacer con case o con If, pero en ambos me sale error, creo que en los dos casos solo agarra el valor que se encuentra en el campo y no en si el campo... el tipo de cambo es number(6,2).
Espero me puedan ayudar.
Carlos.
[email protected]
No se si esto te ayuda:
SQL> select * from t1;
ID SALARIO NUEVO_SALARIO
---------- ---------- -------------
1 100
2 1500
3 5000
4 3000
SQL> update t1 a
set a.nuevo_salario =
(select
case when (salario < 1000) then salario*1.2
when (salario between 1001 and
3000) then salario*1.15
when (salario > 3000) then salario*1.05
end
from t1 b
where a.id = b.id );
4 rows updated
SQL> select * from t1;
ID SALARIO NUEVO_SALARIO
---------- ---------- -------------
1 100 120
2 1500 1725
3 5000 5250
4 3000 3450
Saludos.
SQL> select * from t1;
ID SALARIO NUEVO_SALARIO
---------- ---------- -------------
1 100
2 1500
3 5000
4 3000
SQL> update t1 a
set a.nuevo_salario =
(select
case when (salario < 1000) then salario*1.2
when (salario between 1001 and
3000) then salario*1.15
when (salario > 3000) then salario*1.05
end
from t1 b
where a.id = b.id );
4 rows updated
SQL> select * from t1;
ID SALARIO NUEVO_SALARIO
---------- ---------- -------------
1 100 120
2 1500 1725
3 5000 5250
4 3000 3450
Saludos.
