Modificar el salario de la plantilla de todos los hospitales.
Publicado por Alex (5 intervenciones) el 30/04/2017 15:56:35
Hola buenas tardes.
Tengo el siguiente problema: Quiero modificar el salario de la plantilla de todos los hospitales, Si la suma salarial de cada hospital, supera 1.000.000, bajaremos el salario 10.000. Si la suma salarial no supera el millón, subiremos el salario de los empleados en 10.000.
Este es mi código, el problema es que incrementa el salario en 10.000 todo el rato, solo quiero que aumente una vez si la suma no supera el millón, este es mi código
declare
v_hospital int;
v_suma int;
v_apellido varchar(20);
cursor consulta is
select apellido, sum(salario), hospital_cod into v_apellido, v_suma, v_hospital from plantilla group by apellido, hospital_cod order by hospital_cod ;
begin
open consulta;
loop
fetch consulta into v_apellido, v_suma, v_hospital;
exit when consulta%notfound;
if(v_suma > 1000000) then
update plantilla set salario = salario - 10000
where hospital_cod = v_hospital;
dbms_output.put_line('Bajada de salario');
else
update plantilla set salario = salario + 10000
where hospital_cod = v_hospital;
dbms_output.put_line('Subida de salario');
dbms_output.put_line('Numero de hospital:' || v_hospital || ', ' || v_apellido || ', ' || v_suma);
end if;
end loop;
close consulta;
end;
Como podría hacerlo?
Muchas gracias y un saludo
Tengo el siguiente problema: Quiero modificar el salario de la plantilla de todos los hospitales, Si la suma salarial de cada hospital, supera 1.000.000, bajaremos el salario 10.000. Si la suma salarial no supera el millón, subiremos el salario de los empleados en 10.000.
Este es mi código, el problema es que incrementa el salario en 10.000 todo el rato, solo quiero que aumente una vez si la suma no supera el millón, este es mi código
declare
v_hospital int;
v_suma int;
v_apellido varchar(20);
cursor consulta is
select apellido, sum(salario), hospital_cod into v_apellido, v_suma, v_hospital from plantilla group by apellido, hospital_cod order by hospital_cod ;
begin
open consulta;
loop
fetch consulta into v_apellido, v_suma, v_hospital;
exit when consulta%notfound;
if(v_suma > 1000000) then
update plantilla set salario = salario - 10000
where hospital_cod = v_hospital;
dbms_output.put_line('Bajada de salario');
else
update plantilla set salario = salario + 10000
where hospital_cod = v_hospital;
dbms_output.put_line('Subida de salario');
dbms_output.put_line('Numero de hospital:' || v_hospital || ', ' || v_apellido || ', ' || v_suma);
end if;
end loop;
close consulta;
end;
Como podría hacerlo?
Muchas gracias y un saludo
Valora esta pregunta
0