2016-11-20 10 views
0

私はAdventureWorks2014を使用してSQLクエリを作成しています。注文日を取って日、月、曜日などに切り捨てるものがあります。この一定の時間間隔で行われた注文の数で1ヶ月ごとにすべての月をリストするクエリを使用すると、注文が行われなかった月は無視されます。私は0桁の注文で1ヵ月かかると思っていますが、これをどのように変更するかはわかりません。私はあなたが私を助けることを願っ注文数、AdventureWorks2014のリスト月

SELECT DISTINCT 
    a.SalesOrderID, 
    CONCAT(DATEPART(yyyy,OrderDate), RIGHT('00' + CONVERT(NVARCHAR(2), DATEPART(MONTH, OrderDate)), 2), RIGHT('00' + CONVERT(NVARCHAR(2), DATEPART(DAY, OrderDate)), 2)) AS TimeID, 
    DAY(OrderDate) AS Day, 
    DATEPART(WEEKDAY, OrderDate) AS 'DayOfWeek', 
    DATENAME(WEEKDAY, OrderDate) AS 'DayOfWeek Name', 
    MONTH(OrderDate) AS MONTH, 
    DATENAME(Month, OrderDate) AS 'Month Name', 
    DATEPART(QUARTER, OrderDate) as 'Quarter', 
    YEAR(orderDate) AS YEAR 
INTO 
    [DW].[DIMTime] 
FROM 
    [AdventureWorks2014].[Sales].[SalesOrderHeader] a; 

SELECT 
    MONTH, year, COUNT(SalesOrderID) 
FROM 
    [DW].DIMTime 
GROUP BY 
    MONTH, Year 
ORDER BY 
    Year, Month 

は、ここに私のクエリです!

答えて

1

可能なすべての年と月の組み合わせで表を作成し、OUTER JOINを使用してこの表をDW.DIMTime表に結合し、月リスト表のすべての月と年を保存します。

関連する問題