2015-10-03 2 views
0

Я начинаю с SQL, и мне нужно сравнить онлайн-продажи по категориям продуктов в каждой стране в первой четверти последних трех лет. Я хочу, чтобы запрос в adventureworks.How я должен сделать это СпасибоСравнение онлайн-продаж по категории продуктов-SQL

+1

Пожалуйста, добавьте некоторые примеры данных и ваш ожидаемый результат;). –

+0

Какова схема вашей таблицы? что ты уже испробовал? – sohaiby

ответ

0
SELECT Co.Name    AS Country 
    , C.Name    AS Category 
    , YEAR(OH.OrderDate) AS [Year] 
    , DATEPART(QUARTER,OH.OrderDate) AS [Quater] 
    , SUM(OD.LineTotal) AS Sales 
FROM  [Sales].[SalesOrderDetail]  OD 
INNER JOIN [Sales].[SalesOrderHeader]  OH ON OD.SalesOrderID = OH.SalesOrderID 
INNER JOIN [Production].[Product]   P ON OD.ProductID = P.ProductID 
INNER JOIN [Production].[ProductSubcategory] SC ON P.ProductSubcategoryID = SC.ProductSubcategoryID 
INNER JOIN [Production].[ProductCategory] C ON SC.ProductCategoryID = C.ProductCategoryID 
INNER JOIN [Person].[BusinessEntity]   Pe ON Pe.BusinessEntityID = OH.CustomerID 
INNER JOIN [Person].[BusinessEntityAddress] A ON A.BusinessEntityID = Pe.BusinessEntityID 
INNER JOIN [Person].[Address]    AD ON AD.AddressID = A.AddressID 
INNER JOIN [Person].[StateProvince]   SP ON AD.StateProvinceID = SP.StateProvinceID 
INNER JOIN [Person].[CountryRegion]   Co ON SP.CountryRegionCode = Co.CountryRegionCode 
WHERE OH.OnlineOrderFlag = 1 
AND DATEPART(QUARTER,OH.OrderDate) = 1 
AND OH.OrderDate >= DATEADD(YEAR, DATEDIFF(YEAR,0,GETDATE()) -3, 0) 
GROUP BY Co.Name , C.Name , YEAR(OH.OrderDate), DATEPART(QUARTER,OH.OrderDate) 
Смежные вопросы