列出带有订单数量的月份,AdventureWorks2014

List months with number of order, AdventureWorks2014

我正在使用 AdventureWorks2014 编写一个 SQL 查询,我有一个查询,它获取订单日期并将其切成天、月、星期几等。当我使用一个查询逐一列出所有月份以及在此给定时间间隔内的订单数量时,它会忽略那些没有订单的月份。我想有一个月零订单,但我不知道如何改变它。

这是我的查询:

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

希望你能帮助我!提前致谢

创建一个包含所有可能的年月组合的 table,并使用外部联接将此 table 连接到您的 DW.DIMTime table,保留所有月份和你的月份列表中的年份 table.