Nos muestra:
-nombre
-apellido
-job_id
-empleado_id
-sueldo
-mensaje
-diferencia(entre promedio y sueldo)
*Solo nos falta modifircar para que ingrese en una nueva tabla.
-------------------------------------------------------------------------------------
declare
cursor cr_empleado is
select first_name, last_name, e.job_id, employee_id, salary, job_title
from employees e, jobs j
where e.job_id=j.job_id
and (lower(job_title)='finance manager'
or upper(job_title)='PROGRAMMER');
--variables
vnombre employees.first_name%type;
vapellido employees.last_name%type;
vjob_id employees.job_id%type;
vjob_title employees.job_title%type;
vempleado_id employees.employee_id%type;
vsueldo employees.salary%type;
vsueldomin employees.salary%type;
vsueldomax employees.salary%type;
vpromedio number(8,2);
vmensaje varchar2(30);
vdif number(8,2);
begin
open cr_empleado;
DBMS_output.put_line('NOMBRE/APELLIDO/TRABAJO_ID/EMPLEADO_ID/SUELDO/SITUACION/DIFERENCIA');
DBMS_output.put_line('------------------------------------------------------------------');
loop
FETCH cr_empleado INTO vnombre, vapellido, vjob_id, vempleado_id,
vsueldo, vjob_title;
exit when cr_empleado%NOTFOUND;
--traer el valor min y max para ver si el promedio coincide
select min_salary, max_salary into vsueldomin, vsueldomax
from jobs
where vjob_id=job_id;
vpromedio:=(vsueldomin + vsueldomax)/2;
--DBMS_output.put_line('SUELDO MINIMO:$'||vsueldomin||' '||'SUELDO MAXIMO :$'||vsueldomax||' '||'PROMEDIO :$'||vpromedio);
if vsueldo >= vpromedio then
vmensaje := 'evaluar carga de trabajo';
else
vmensaje := 'estudiar un aumento';
end if;
vdif := vpromedio - vsueldo;
--OJO ._. revisar enunciado
DBMS_output.put_line(vnombre ||'/'|| vapellido ||'/'|| vjob_id
||'/'|| vempleado_id ||'/'|| vsueldo||'/'|| vmensaje ||'/'|| vdif);
INSERT INTO VALUES();
end loop;
DBMS_output.put_line('------------------------------------------------------------------');
close cr_empleado;
end
No hay comentarios:
Publicar un comentario