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