кодесурса
«PL / SQL

Упражнения для курсора PL / SQL: отображение названия отдела, главы департамента, города и сотрудника с самой высокой зарплатой

script1adsense2code
script1adsense3code

Курсор PL / SQL: упражнение 28 с решением

Напишите блок PL / SQL для отображения названия отдела, главы отдела, города и сотрудника с самой высокой зарплатой. Отображаемое имя, город, ход, emp с самой высокой зарплатой

Пример решения:

Код PL / SQL:

DECLARE
    CURSOR dpt_cur IS
      SELECT d.department_id      id,
             department_name      dptname,
             city,
             Nvl(first_name, '...') manager
      FROM   departments d
             left outer join employees e
                          ON ( d.manager_id = e.employee_id )
             join locations l USING(location_id)
      ORDER  BY 2;
    emp_name       employees.first_name%TYPE;
    emp_max_salary employees.salary%TYPE;
BEGIN
    FOR dept_all IN dpt_cur LOOP
        SELECT Max(salary)
        INTO   emp_max_salary
        FROM   employees
        WHERE  department_id = dept_all.id;
        IF emp_max_salary IS NULL THEN
          emp_name :='...';
        ELSE
          SELECT first_name
          INTO   emp_name
          FROM   employees
          WHERE  department_id = dept_all.id
                 AND salary = emp_max_salary;
        END IF;
        dbms_output.Put_line(Rpad(dept_all.dptname, 20)
                             || Rpad(dept_all.manager, 15)
                             || Rpad(dept_all.city, 20)
                             || Rpad(emp_name, 20));
    END LOOP;
END;
/ 

Пример вывода:

 SQL> /
Бухгалтерский учет Шелли Сиэтл Шелли
Администрация Дженнифер Сиэтл Дженнифер
Преимущества ... Сиэтл ...
Строительство ... Сиэтл ...
Договариваюсь ... Сиэтл ...
Контроль и кредит ... Сиэтл ...
Корпоративный налог ... Сиэтл ...
Исполнительный Стивен Сиэтл Стивен
Финансы Нэнси Сиэтл Нэнси
Правительственные продажи ... Сиэтл ...
Людские ресурсы Сьюзен Лондон Сьюзен
IT Александр Саутлейк Александр
IT Helpdesk ... Сиэтл ...
ИТ-поддержка ... Сиэтл ...
Производство ... Сиэтл ...
Маркетинг Майкл Торонто Майкл
НОК ... Сиэтл ...
Шеф ... Сиэтл ...
Заработная плата ... Сиэтл ...
Связи с общественностью Герман Мюнхен Герман
Покупка Ден Сиэтл Ден
Рекрутинг ... Сиэтл ...
Розничные продажи ... Сиэтл ...
Продажи Джон Оксфорд Джон
Услуги для акционеров ... Сиэтл ...
Доставка Адам Юг Сан-Франциско Адам
Казначейство ... Сиэтл ...
Процедура PL / SQL успешно завершена. 

Блок - схема:

«Блок-схема:

Улучшите этот пример решения и опубликуйте свой код через Disqus

Предыдущий: Напишите блок PL / SQL, чтобы показать использование переменной в явном запросе курсора, и никакой набор результатов не будет затронут, несмотря на то, что значение переменной увеличивается после каждой выборки.
Далее: Напишите блок PL / SQL, чтобы отобразить название отдела, имя руководителя, количество сотрудников в каждом отделе и количество сотрудников, перечисленных в job_history.

Каков уровень сложности этого упражнения?

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code