set serveroutput on
declare
cursor crEmpleado is
select e.first_name, e.last_name, d.department_id, d.department_name
from employees e join departments d on
(d.department_id = e.department_id)
order by d.department_id;
cntDept integer;
cntTotal integer := 0;
deptoAnterior employees.department_id%type;
vNombredepto departments.department_name%type;
begin
cntDept:= 0;
deptoAnterior := 9999;
for recEmp in crEmpleado loop
if deptoAnterior <> recEmp.department_id then
if deptoAnterior <> 9999 then
dbms_output.put_line('Total Empleados en '|| deptoAnterior||
' es: '||cntDept);
dbms_output.put_line(' ');
end if;
dbms_output.put_line(recEmp.department_id||' - '||vNombredepto);
cntTotal := cntTotal + cntDept;
cntDept := 0;
cntTotal := cntTotal +1;
cntDept := cntDept +1;
deptoAnterior := recEmp.department_id;
vNombredepto := recEmp.department_name;
end if;
dbms_output.put_line(' '||recEmp.first_name);
end loop;
dbms_output.put_line('Total Empleados en '|| deptoAnterior||
' es: '||cntDept);
dbms_output.put_line('Total general de Empleados: '||cntTotal);
exception
when others then
dbms_output.put_line('Error en el Cursor');
end;
No hay comentarios:
Publicar un comentario