我正在处理一个图表,其中需要显示一年中的所有月份,以显示每月的销售额。到目前为止,我只能显示有相应值的月份。以下是到目前为止我的存储过程查询。
SELECT (DATENAME (MONTH, DATEADD ( MONTH, DATEPART(MONTH, ORDER_DATE), -1) ))
AS MONTH_NAME,
SUM ([ORDER].NET_AMOUNT) AS TOTAL_SALES
FROM [ORDER], ORDER_DETAILS
WHERE [ORDER].ORDER_ID = ORDER_DETAILS.ORDER_ID
--AND (DATENAME (MONTH, DATEADD ( MONTH, DATEPART(MONTH, ORDER_DATE), -1) )) = (DATENAME (MONTH, DATEADD ( MONTH, DATEPART(MONTH, @Order_month), -1) ))
GROUP BY MONTH([ORDER].ORDER_DATE)
ORDER BY MONTH_NAME
它只显示1个月和那个月的销售额。有人能帮我解决这个问题吗?
3条答案
按热度按时间nwsw7zdq1#
创建月份表
ar7v8xwq2#
首先请使用正确的JOIN语法和别名。
您可以使用月份创建CTE,使用输出创建CTE,并将它们连接起来:
这将给出所有月份名称和所有总销售额,如果没有总销售额-它将显示NULL。
bfhwhh0e3#
试试这个: