martes, 6 de septiembre de 2011

Tarea 1

Desarrolle un cursor, que permita estudiar los empleados (“*Employees*”)
cuyo cargo sea “*Finance Manager*” o “*Programmer*”, generando un registro
en la tabla "*EstudioSueldo*" para cada empleado. En dicha tabla se debe
registrar: el ID del Empleado, Nombre, Apellido, renta, la diferencia con el
promedio y un comentario

Para aquellos empleados que tienen una renta (salary) menor o igual que el
promedio entre el valor min y max, definido en la tabla *jobs* el comentario
debe indicar "*estudiar un aumento*". Para los que tienen una renta
superior al promedio hay que indicar "*evaluar carga de trabajo*" en el
mensaje.

SOLUCION

declare
cursor cr_empleado 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 (lower(job_title)='finance manager'
or upper(job_title)='PROGRAMMER');

vnombre employees.first_name%type;
vapellido employees.last_name%type;
vjob_id employees.job_id%type;
vempleado_id employees.employee_id%type;
vsueldo employees.salary%type;
vsueldomin employees.salary%type;
vsueldomax employees.salary%type;
vdif number(8,2);
vpromedio number(8,2);
vmensaje varchar2(40);
begin
open cr_empleado;
loop
FETCH cr_empleado INTO vnombre, vapellido, vjob_id, vempleado_id,
vsueldo;
exit when cr_empleado%NOTFOUND;
select min_salary, max_salary into vsueldomin, vsueldomax
from jobs
where vjob_id=job_id;
vpromedio:=(vsueldomin + vsueldomax)/2;
vdif := vpromedio-vsueldo;
if vsueldo >= vpromedio then
vmensaje := 'evaluar carga de trabajo';
else
vmensaje := 'estudiar un aumento';
end if;
if vdif >= 0 then
DBMS_output.put_line(vnombre ||' '|| vapellido ||' '|| vjob_id ||' '|| vempleado_id ||' '|| vsueldo||' Diferencia con el promedio: '||vdif||' '||vmensaje);
else
DBMS_output.put_line(vnombre ||' '|| vapellido ||' '|| vjob_id ||' '|| vempleado_id ||' '|| vsueldo||' Diferencia con el promedio: '||vdif||' '||vmensaje);
end if;
end loop;
close cr_empleado;
end

jueves, 11 de agosto de 2011

Taller Nº1

Solucion al Taller Nº1.

En el taller se aplicaron los conocimientos en el uso de:
-"Like" (Para comparar cadenas de caracteres).
-"Count" (Para contar la cantidad de items seleccionados) .
-"Order by" (Para ordenar segun el parametro deceado).
-"Dual" (Tabla predefinida en oracle, para hacer calculos entre otras cosas).