jueves, 10 de mayo de 2012

09 de Mayp Ejercicio 3 Control 3

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