jueves, 18 de agosto de 2011

-- algunos select
-- listar cuantos empleados hay por departamento

select DEPARTMENT_ID, count(*)
from employees
group by DEPARTMENT_ID
order by count(*) desc, DEPARTMENT_ID;



________________________________________________________________________________________________________________________________

-- cursores
-- cursor que lista la cantidad de empleados por dpto
declare
cursor curCtaEmpleados is
select DEPARTMENT_ID, count(*)
from employees
group by DEPARTMENT_ID
order by count(*) desc, DEPARTMENT_ID;
vIdDepartamento employees.DEPARTMENT_ID%type;
vTotalEmpleados integer;
begin
open curCtaEmpleados;
loop
fetch curCtaEmpleados into vIdDepartamento, vTotalEmpleados;
exit when curCtaEmpleados%NOTFOUND;
dbms_output.put_line(vIdDepartamento || ' ' ||vTotalEmpleados);
end loop;
close curCtaEmpleados;
end


______________________________________________________________________________________________________________________________


-- cursores
-- cursor que lista los nombres de empleados por dpto
declare
cursor curCtaEmpleados is
select DEPARTMENT_ID, count(*)
from employees
group by DEPARTMENT_ID
order by count(*) desc, DEPARTMENT_ID;
vIdDepartamento employees.DEPARTMENT_ID%type;
vTotalEmpleados integer;
vNombreDepartamento departments.department_name%type;
begin
open curCtaEmpleados;
loop
fetch curCtaEmpleados into vIdDepartamento, vTotalEmpleados;
exit when curCtaEmpleados%NOTFOUND;
select department_name into vNombreDepartamento
from DEPARTMENTS
where department_id = vIdDepartamento;
dbms_output.put_line(vIdDepartamento || ' ' ||vTotalEmpleados);
end loop;
close curCtaEmpleados;
end

No hay comentarios:

Publicar un comentario