Файл: Лабораторная работа 7. Левое соединение таблиц. Функции в sqlзапросах. 3.odt
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 26.10.2023
Просмотров: 39
Скачиваний: 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 СуммаОкладов.Название=ПремииПоМесяцам.Название
and "НазванияМесяцев"."Номер"="Премии"."Месяц"group by "Месяц", "Название"4.3)Используя сохранённый запрос, получите для каждого месяца общую сумму выплат (т.е., окладов и премий) всех сотрудников. select "НазванияМесяцев"."Название", sum( "Оклад" ) as "Сумма окладов"from "Премии", "Сотрудники", "НазванияМесяцев"where "Премии"."ТабНомер" = "Сотрудники"."ТабНомер"group by "НазванияМесяцев"."Название"select ПремииПоМесяцам.Название, "Сумма окладов"+"Сумма премий" as "Общая сумма"from СуммаОкладов, ПремииПоМесяцамwhere СуммаОкладов.Название=ПремииПоМесяцам.Название