[4sem] add db course files
This commit is contained in:
parent
ea29f4148d
commit
827b74f0b4
13 changed files with 1087 additions and 0 deletions
59
4sem/db/lab8-1.sql
Normal file
59
4sem/db/lab8-1.sql
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
-- Провести оценку количества товара на складе по наименованиям: менее 10 – мало,
|
||||
-- от 10 до 100 – достаточно, более 100 – избыточно.
|
||||
SELECT G.[Имя],
|
||||
SUM([Склад].[Количество]) as AMOUNT,
|
||||
case
|
||||
when SUM([Склад].[Количество]) < 10 then N'Мало'
|
||||
when SUM([Склад].[Количество]) < 101 then N'Достаточно'
|
||||
else N'Избыточно'
|
||||
end as ESTIMATION
|
||||
FROM [Склад]
|
||||
JOIN [Товар] as G on G.ID = [Склад].[КодТовара]
|
||||
GROUP BY G.[Имя];
|
||||
|
||||
-- Вывести наименования товаров, количество которых на складе от 1 до 10 (35 и 45)
|
||||
SELECT *
|
||||
FROM (SELECT G.[Имя],
|
||||
SUM([Склад].[Количество]) as AMOUNT
|
||||
FROM [Склад]
|
||||
JOIN [Товар] as G on G.ID = [Склад].[КодТовара]
|
||||
GROUP BY G.[Имя]) as SQNG
|
||||
WHERE AMOUNT BETWEEN 35 AND 45;
|
||||
|
||||
-- Определить тройку товаров, выручка за которые самая большая.
|
||||
SELECT TOP 3 G.[Имя],
|
||||
SUM(D.[Количество] * [Склад].[Цена]) as AMOUNT
|
||||
FROM [Склад]
|
||||
JOIN [Товар] as G on G.ID = [Склад].[КодТовара]
|
||||
JOIN [Сделка] as D on D.[КодСклада] = [Склад].ID
|
||||
GROUP BY G.Имя
|
||||
ORDER BY AMOUNT DESC;
|
||||
|
||||
-- Определить суммарную стоимость продаж каждого товара по месяцам.
|
||||
SELECT G.[Имя],
|
||||
YEAR(D.[Дата]) as YEAR,
|
||||
DATENAME(MONTH, D.[Дата]) as MONTH,
|
||||
SUM(D.[Количество] * [Склад].[Цена]) as AMOUNT
|
||||
FROM [Склад]
|
||||
JOIN [Товар] as G on G.ID = [Склад].[КодТовара]
|
||||
JOIN [Сделка] as D on D.[КодСклада] = [Склад].ID
|
||||
GROUP BY G.[Имя], YEAR(D.[Дата]), DATENAME(MONTH, D.[Дата])
|
||||
ORDER BY AMOUNT DESC;
|
||||
|
||||
-- Показать месяца, в которых продажи Молока 3,2% (или любого другого товара,
|
||||
-- хранящегося на складе с разными ID) были ниже 300 денег.
|
||||
DECLARE @randomGoodsId INT = (SELECT TOP 1 ID
|
||||
FROM [Товар]
|
||||
ORDER BY NEWID());
|
||||
DECLARE @thresholdPrice INT = 200000;
|
||||
SELECT *
|
||||
FROM (SELECT G.[Имя],
|
||||
YEAR(D.[Дата]) as YEAR,
|
||||
DATENAME(MONTH, D.[Дата]) as MONTH,
|
||||
SUM(D.[Количество] * [Склад].[Цена]) as AMOUNT
|
||||
FROM [Склад]
|
||||
JOIN [Товар] as G on G.ID = [Склад].[КодТовара]
|
||||
JOIN [Сделка] as D on D.[КодСклада] = [Склад].ID
|
||||
WHERE [Склад].КодТовара = @randomGoodsId
|
||||
GROUP BY G.[Имя], YEAR(D.[Дата]), DATENAME(MONTH, D.[Дата])) as SQG
|
||||
WHERE AMOUNT <= @thresholdPrice;
|
||||
Loading…
Add table
Add a link
Reference in a new issue