Это SQL, который я написал
SET SERVEROUTPUT ON
DECLARE
CURSOR overview IS
SELECT e.last_name, e.first_name, d.department_name, e.department_id
FROM employees e, departments d
where e.department_id = d.department_id
ORDER BY e.department_id;
lastdepartment employees.department_id%TYPE := 0;
BEGIN
FOR i in overview LOOP
IF lastdepartment != i.department_id THEN
lastdepartment := i.department_id;
DBMS_OUTPUT.PUT_LINE('-' || i.department_id||' '||i.department_name);
END IF;
DBMS_OUTPUT.PUT_LINE('---'||i.last_name ||' '||i.first_name);
END LOOP;
END;
Он выводит информацию так, что он показывает имя и фамилию всех сотрудников в определенном отделе с помощью a для l oop. Основная идея заключается в том, что в одном и том же отделе много сотрудников, и мне не нужно выводить отдел для каждого, а скорее сделать обзор. Пример выходных данных показан ниже:
-10 Administration
---Whalen Jennifer
-20 Marketing
---Fay Pat
---Hartstein Michael
-30 Purchasing
---Tobias Sigal
---Colmenares Karen
---Baida Shelli
Используемый мною метод хранит номер отдела элемента PREVIOUS и проверяет, соответствует ли он текущему элементу. Я хотел бы знать, есть ли способ проверить Department_id текущего элемента и Department_id элемента NEXT , поскольку это приведет к удалению созданной мной переменной.