Вариант 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. Информацию о продажах – клиент, общая стоимость покупок по датам, тип
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)