UPC/4sem/db/lab7.sql
2021-05-11 22:08:11 +07:00

34 lines
No EOL
2.3 KiB
SQL
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- Показать какой поставщик поставил каждый товар на склад (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 = [Сотрудник].[КодНачальника];