Файл: Лабораторная работа 7. Левое соединение таблиц. Функции в sqlзапросах. 3.odt
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 26.10.2023
Просмотров: 8
Скачиваний: 2
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Лабораторная работа №7.
Левое соединение таблиц. Функции в SQL-запросах.
3)Выполните запросы с левым соединением таблиц А) Для каждого сотрудника выведите данные о его окладе и полученных премиях.
select "Сотрудники"."ТабНомер", "ФИО",
"Оклад", "Месяц", "Сумма"
from "Сотрудники" LEFT JOIN "Премии"
ON "Сотрудники"."ТабНомер" = "Премии"."ТабНомер"
б)Для каждого сотрудника выведите данные о сумме его премий .
SELECT "Сотрудники"."ТабНомер", "Сотрудники"."ФИО", SUM( "Сумма" ) AS "Сумма премий" FROM "Сотрудники" LEFT JOIN "Премии" ON "Сотрудники"."ТабНомер" = "Премии"."ТабНомер" GROUP BY "Сотрудники"."ТабНомер", "Сотрудники"."ФИО"
В)Для каждого сотрудника выведите данные о его годовом доходе (т.е. 12*оклад + премии). При написании запроса используем запрос СуммаПремий в качестве таблицы и внутреннее соединение таблиц (JOIN или INNER JOIN)
select "Сотрудники"."ТабНомер", "ФИО",
12*Оклад + Всего as "ГодовойДоход"
from "Сотрудники" join "СуммаПремий"
on "Сотрудники"."ТабНомер" = "СуммаПремий"."ТабНомер"
4.1)
Добавьте в таблицу Отделы ещё два отдела без сотрудников. Для каждого
раздела выведите список сотрудников, работающих в этом отделе. Если
в отделе нет сотрудников, то в соответствующей строке вывести только
номер и название отдела.
select "Отделы".*, "ФИО"
from "Отделы" left join "Сотрудники"
on "Отделы"."Номер" = "Сотрудники"."НомерОтдела"
4.2)
Для каждого месяца определите общую сумму премий всех сотрудников. Сохраните запрос под именем ПремииПоМесяцам
select "Месяц", "Название", sum( "Сумма" ) as "Сумма премий"
from "Премии","Сотрудники", "НазванияМесяцев"
where "Премии"."ТабНомер" = "Сотрудники"."ТабНомер"
and "НазванияМесяцев"."Номер"="Премии"."Месяц"
group by "Месяц", "Название"
4.3)Используя сохранённый запрос, получите для каждого месяца общую сумму выплат (т.е., окладов и премий) всех сотрудников.
select "НазванияМесяцев"."Название", sum( "Оклад" ) as "Сумма окладов"
from "Премии", "Сотрудники", "НазванияМесяцев"
where "Премии"."ТабНомер" = "Сотрудники"."ТабНомер"
group by "НазванияМесяцев"."Название"
select ПремииПоМесяцам.Название, "Сумма окладов"+"Сумма премий" as "Общая сумма"
from СуммаОкладов, ПремииПоМесяцам
where СуммаОкладов.Название=ПремииПоМесяцам.Название