Файл: Лабораторная работа 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 СуммаОкладов.Название=ПремииПоМесяцам.Название