我已经创建了一个查询来获得12个月的名称,也得到了该月的计数。使用我的查询,我逐月获取数据并获取月份名称。使用SQL Server获取12个月的数据计数名称?
但是在我的查询中,如果6月份在表格中没有任何数据,我将无法获得6月份的条目。我希望6月份也能显示0个数据。怎么可以做到这一点?我不知道。
这里是我的查询:
DECLARE @year nvarchar(max)
SELECT @year = year(getdate())
SELECT
MONTH(InsertDateTime) AS m,
FORMAT(InsertDateTime, 'MMM-yy') AS Month,
COUNT(InsertDateTime) AS tally
FROM
Comments
WHERE
YEAR(InsertDateTime) = @year
GROUP BY
FORMAT(InsertDateTime, 'MMM-yy'), MONTH(InsertDateTime)
这是我回报O/P:
m | Month | tally
1 Jan-17 1
2 Feb-17 1
3 Mar-17 10
4 Apr-17 15
5 May-17 20
8 Aug-17 25
这是我预期的O/P:
m | Month | tally
1 Jan-17 1
2 Feb-17 1
3 Mar-17 10
4 Apr-17 15
5 May-17 20
6 June-17 0
7 July-17 0
8 Aug-17 25
9 Sep-17 0
10 Oct-17 0
11 Nav-17 0
12 Dec-17 0
此返回数据正确的,但在这里我不会再回到其他月份。像六月,七月,九月,十月,六月,十月十日进入表不是可用的。我想在这个月的时候还会收到0的价值。
也许这可以帮助https://stackoverflow.com/questions/7893207/how-to-select-last-12-months-name-and-year-without-using-tables-using-sql-查询 – GuidoG
可能重复[SQL组和按月的总和 - 默认为零](https://stackoverflow.com/questions/7121914/sql-group-and-sum-by-month-default-to-zero) – MatSnow