Está en la página 1de 2

CREATE OR REPLACE FUNCTION fn_total_emple

(p_depto NUMBER)
RETURN NUMBER
IS
total_empleados NUMBER;
BEGIN
SELECT
COUNT(employee_id) AS cantidad
INTO
total_empleados
FROM employees
WHERE department_id=p_depto;

RETURN total_empleados;

END fn_total_emple;
/

DECLARE
v_cantidad NUMBER;
v_depto NUMBER;
total_empleados NUMBER;
BEGIN
v_depto := &codigo_depto;
total_empleados := fn_total_emple(v_depto);

IF total_empleados = 0 THEN
DBMS_OUTPUT.PUT_LINE('No tiene empleados');
ELSE
DBMS_OUTPUT.PUT_LINE('El depto ' || v_depto || ' tiene');
DBMS_OUTPUT.PUT_LINE('Cantidad Empleados ' || total_empleados);

END IF;

END;
/

SELECT
COUNT(emp.employee_id) AS cantidad,
dep.department_id AS depto
FROM employees EMP RIGHT JOIN departments DEP
ON EMP.department_id=DEP.department_id
GROUP BY dep.department_id;

DECLARE
CURSOR cr_deptos IS
SELECT
COUNT(emp.employee_id) AS cantidad,
dep.department_id AS depto
FROM employees EMP RIGHT JOIN departments DEP
ON EMP.department_id=DEP.department_id
GROUP BY dep.department_id;
v_cantidad NUMBER;
v_depto NUMBER;
BEGIN
OPEN cr_deptos;

LOOP
FETCH cr_deptos INTO v_cantidad, v_depto;
EXIT WHEN cr_deptos%NOTFOUND;
DBMS_OUTPUT.PUT_LINE('++++++++++++++++++++++++++++++++++++++++');

DBMS_OUTPUT.PUT_LINE('El depto ' || v_depto || ' tiene');


DBMS_OUTPUT.PUT_LINE('Cantidad Empleados ' || v_cantidad);

END LOOP;

CLOSE cr_deptos;

END;
/

También podría gustarte