martes, 30 de agosto de 2011

Cursor

--Cursor que permita determinar los empleados cuyo cargo sea finance manager o programmer, que tienen una renta menor o igual al promedio entre el salario minimo y maximo definido en la tabla jobs--
--Para los empleados que tiene menos del promedio estudiar aumento y para los que tengan mas estudiar carga de trabajo--
-- Generando un registro en la tabla , estudio_sueldo, donde se graben el id_empleado , nombre , apellido , renta , y diferencia con promedio--



Create table estudio_sueldo(
EMPLOYEE_ID number (6),
FIRST_NAME varchar2 (20),
LAST_NAME varchar2 (25),
SALARY number (8,2),
PROMEDIO number (8,2),
MESSAGE varchar2 (30))


Incompleto

Declare
cursor miCursor is
 Select first_name , last_name, e.job_id, employee_id, salary
 From Employees e, Jobs j
 Where e.job_id = j.job_id
 and job_title = 'Finance Manager'
 or job_title = 'Programmer';
vNombre employees.first_name%type;
vApellido employees.last_name%type;
vJobid employees.job_id%type;
vEmpleadoid employees.employee_id%type;
vSalario employees.salary%type;
vSueldoMin employees.salary%type;
vSueldoMax employees.salary%type;
vPromedio number (8,2);
Begin
open miCursor;
loop
fetch miCursor into vNombre,vApellido,vJobid,vEmpleadoid,vSalario;
exit when miCursor%notfound;
dbms_output.put_line(vNombre ||' '||vApellido||' '||vJobId||' '||vEmpleadoId||' '||vSalario);
select min_salary , max_salary into vSueldoMin, vSueldoMax
from jobs
where vJobId = job_id
vPromedio = (vSueldoMin + vSueldoMax)/2;
if vSueldo >= vPromedio
then vMessage := 'evaluar carga de trabajo'
else
vMessage := 'Estudiar aumento de sueldo';
end if;
--Falta calcular la diferencia ente los sueldos y promedios--
--Realizar enunciado--
insert into estudio_sueldo values (vEmpleadoid,vNombre,vApellido,vSalario, vPromedio)
end loop;
close miCursor;
End;

No hay comentarios.:

Publicar un comentario