Итак, я хочу выбрать 10 самых продаваемых продуктов за квартал в год.Четверть четверти года.пример:
год-> 2017 1-й квартал: топ-10 проданных продуктов
я хотел бы получить такой вид продукции: (где key-> ProductKey, ProductVolume-> Количество продаж этого продукта,Квартал-> Номер рассматриваемого квартала, Год-> Год в вопросе.
| Key | ProductVolume | Квартал | Год | ....... ....
2ndквартал: топ-10 проданных продуктов ... год-> 1-й квартал: топ-10 проданных продуктов 2-й квартал: топ-10 проданных продуктов
SELECT s.ProductKey as [Key],
COUNT(s.ProductKey) as [ProductVolume],
datepart(q, s.OrderDate) as [Quarter],(yyyy, s.OrderDate) as [Year]
FROM (Select p.ProductKey,
s.OrderDate,
row_number() over(PARTITION BY datepart(q, s.OrderDate)
order by
p.ProductKey desc) as rn
FROM Sales as s
INNER JOIN SalesProduct as sp
ON sp.SalesKey=s.SalesKey
INNER JOIN Product as p
ON p.ProductKey=sp.ProductKey
) as s
WHERE datepart(yyyy, s.OrderDate)
BETWEEN YEAR(getdate())-2 AND YEAR(getdate())
GROUP BY datepart(q, s.OrderDate), datepart(yyyy, s.OrderDate), s.ProductKey
это результат, который я получаю прямо сейчас, все результаты...
введите описание изображения здесь
Изображение выше представляет результат этого запроса,это расположение таблиц, которые я использую во внутренних соединениях.
Select top 1 * from Product;
Select top 1 * from Sales;
Select top 1 * from SalesProduct;