[4sem] add db course files
This commit is contained in:
parent
ea29f4148d
commit
827b74f0b4
13 changed files with 1087 additions and 0 deletions
34
4sem/db/lab7.sql
Normal file
34
4sem/db/lab7.sql
Normal 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 = [Сотрудник].[КодНачальника];
|
||||
Loading…
Add table
Add a link
Reference in a new issue