Problema en consulta (sql plus)

Carlos
10 de Mayo del 2005
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]

trazom
10 de Mayo del 2005
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.

S
10 de Mayo del 2005
UPDATE TABLA SET NUEVO_SALARIO = (SALARIO + SALARIO * 0.2) WHERE SALARIO <= 1000;

...