Вы находитесь на странице: 1из 2

Контрольная работа 2.

SQL запросы

Вариант 2.2
Создать SQL запросы для базы данных dbProducts, для получения следующей информации

1. Список продуктов категрий Puuviljad и Juurviljad

SELECT Category, ProductName


FROM tCategory as C INNER JOIN tProduct as Pr
ON C.CategoryID = Pr.CategoryID
WHERE C.Category LIKE 'Puuviljad' OR C.Category LIKE 'Juurviljad'

2. Три самых дешевых товара, включая товары, цена которых не определена

SELECT TOP 3 T.ProductCode, ProductName, MIN(Price) as MinPrice


FROM tPrice as P RIGHT JOIN tProduct as T
ON P.ProductCode = T.ProductCode
GROUP BY T.ProductCode, ProductName
ORDER BY 3

3. Для каждого товара количество проданных единиц с ценой меньше 3евро.


Отсортировать список в порядке убывания количества товаров.

SELECT C.Category, Price, COUNT(tProduct.ProductCode) as TotalBought


FROM tProduct LEFT JOIN tPrice
ON tProduct.ProductCode = tPrice.ProductCode JOIN tCategory C
ON C.CategoryID = tProduct.CategoryID
WHERE Price<3 OR Price IS NULL
GROUP BY C.Category, Price
ORDER BY Price DESC

SELECT T.ProductName, COUNT(*)


FROM tPrice as P RIGHT JOIN tProduct as T
ON P.ProductCode = T.ProductCode JOIN tCart as C
ON C.ProductCode = T.ProductCode
WHERE Price<3 OR Price IS NULL
GROUP BY ProductName
ORDER BY COUNT(*)

4. Информацию о продажах – клиент, общая стоимость покупок по датам, тип


оплаты и статус счета

SELECT B.ClientID, B.PaymentDate, B.PaymentType, B.BillStatus,


SUM(ProductCount*ISNULL(Price,0)) AS Total
FROM tBill as B INNER JOIN tCart as C
ON B.ID = C.BillID LEFT JOIN tPrice as P
ON C.ProductCode = P.ProductCode
GROUP BY B.ClientID, B.PaymentDate, B.PaymentType, B.BillStatus

5. Найти двух клиентов с наибольшим числом покупок. Учитывать, что таких


клиентов может быть несколько.

SELECT C.ClientName, C.Phone, COUNT(*) as Total


FROM tBill as B INNER JOIN tClient as C
ON C.CLientID = B.ClientID
GROUP BY C.ClientName, C.Phone
ORDER BY 3 DESC

Дополнительные задания. Создать SQL запросы для базы данных dbProducts

6. Написать команду для добавления в таблицу tCategory новой категории товаров.

INSERT INTO tCategory (Category, Description)


VALUES('Kalatooted', 'Kalatooted')

7. Вывести список категорий, продукты которых не продавались. Использовать


вложенные запросы.

SELECT Category, CategoryID


FROM tCategory
WHERE CategoryID IN
(SELECT DISTINCT P.CategoryID--,P.ProductName--, C.ProductCode
FROM tProduct as P LEFT JOIN tCart as C
ON P.ProductCode = C.ProductCode
WHERE C.ProductCode IS NULL)

Вам также может понравиться