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