
Лабораторная работа 7
Создание подзапросов для выборки данных по неизвестным критериям
Использование подзапросов для выявления значений, существующих в одном наборе данных и отсутствующих в другом
С
оздайте запрос для вывода фамилии и даты найма каждого служащего, работающего в одном отделе с Zlotkey. Исключите Zlotkey из выходных данных.
{Select в скобках - подзапрос}
Select last_name, hire_date
From employees
Where department_id = (select department_id from employees where last_name ='Zlotkey') and (last_name <>'Zlotkey');
С
оздайте запрос для вывода номеров и фамилий всех служащих, оклад которых выше среднего. Отсортируйте данные в порядке увеличения окладов.
Select employee_id, last_name, salary
From employees
Where salary > (select avg(salary) from employees);
С
оздайте запрос для вывода номеров и фамилий всех служащих, работающих в одном отделе с любым служащим, фамилия которого содержит букву «u». Сохраните свой запрос в тестовом файле lab6_3.sql. Выполните запрос.
Select employee_id, last_name
From employees
Where department_id in (select distinct department_id from employees where last_name LIKE'%u%');
С
оздайте запрос для вывода фамилии, номера отдела и должности каждого служащего, идентификатор местоположения отдела которого равен 1700.
Select last_name, department_id, job_id
From employees
Where department_id in (select department_id from departments where location_id = 1700);
Получите список фамилий и окладов всех служащих, подчинённых Кингу.
Select last_name, salary
From employees
Where manager_id in (select employee_id from employees where last_name='King');
П
олучите номер отдела, фамилию и должность для каждого служащего, работающего в администрации (department_name = ‘Executive’).
Select department_id, last_name, job_id
From employees
Where department_id in (select department_id from departments where department_name='Executive');
Измените lab6_3.sql для вывода номеров, фамилий и окладов всех служащих, которые работают в одном отделе с любым служащим с буквой «u» в фамилии и оклады которых превышают средний. Сохраните новый запрос в файле lab6_7.sql. Выполните его.
Select employee_id, last_name, salary
From employees
Where department_id in (select distinct department_id from employees where last_name like'%u%') and (salary > (select avg(salary) from employees));
П
окажите номер отдела с наивысшей средней заработной платой и наименьший оклад работающегов нём сотрудника.
Select department_id, avg(salary), min(salary) from employees group by department_id having avg(salary)=(select max(avg(salary)) from employees group by department_id);
В
ыведите номера , наименования и местоположения отделов, в которых не работают торговые представители (job_id = ‘SA_REP’).
Select department_id, department_name, location_id
From departments
Where department_id not in (select distinct department_id from departments where department_id in (select distinct department _id from employees where job_id = 'SA_REP'));