[4sem] add db course files

This commit is contained in:
Andrew Nuark G 2021-05-11 22:08:11 +07:00
parent ea29f4148d
commit 827b74f0b4
13 changed files with 1087 additions and 0 deletions

34
4sem/db/lab7.sql Normal file
View file

@ -0,0 +1,34 @@
-- Показать какой поставщик поставил каждый товар на склад (INNER JOIN).
SELECT DISTINCT G.[Имя], P.[Имя] FROM [Склад]
INNER JOIN [Поставщик] as P on P.ID = [Склад].[КодПоставщика]
INNER JOIN [Товар] as G on G.ID = [Склад].[КодТовара];
-- Вывести список товаров, которыми торгует фирма, и их поставщиков вне
-- зависимости от наличия поставок (LEFT JOIN).
SELECT [Товар].[Имя], P.[Имя] FROM [Товар]
LEFT JOIN [Склад] as S on S.[КодТовара] = [Товар].ID
LEFT JOIN [Поставщик] as P on P.ID = S.[КодПоставщика];
-- Вывести информацию о покупаемых со склада товарах и их покупателях, включая
-- товары, отсутствующие в списке реализованных товаров (RIGHT JOIN)
SELECT G.[Имя],
IIF(C.[Имя] is NULL, N'Не определён', C.[Имя]),
IIF([Сделка].[Количество] is NULL, N'Не определено', STR([Сделка].[Количество]))
FROM [Сделка]
INNER JOIN [Склад] as S on S.ID = [Сделка].КодСклада
INNER JOIN [Клиент] as C on C.ID = [Сделка].[КодКлиента]
RIGHT JOIN [Товар] as G on G.ID = S.[КодТовара];
-- Вывести список поставщиков, которые хотя бы раз осуществляли поставку на склад
-- (полусоединение).
SELECT DISTINCT [Поставщик].[Имя] FROM [Поставщик]
JOIN [Склад] AS S on [Поставщик].ID = S.[КодПоставщика]
-- Выведите список сотрудников с указанием их прямых начальников
-- (самосоединение). Для главного начальника в столбец «Начальник» вывести
-- «не определен».
SELECT
[Сотрудник].[Имя],
IIF(B.[Имя] is NULL, N'Не определён', B.[Имя])
FROM [Сотрудник]
LEFT JOIN [Сотрудник] as B on B.ID = [Сотрудник].[КодНачальника];