这似乎应该很容易,但我似乎无法弄清楚。我有一张表,其中包含Artifact
名称和Modification_Date
等。我有一个查询得到的月份文件修改计数。有几个月没有任何修改。由于我在Modification_Date
上查询和分组,因此在没有修改的情况下,这些月份没有返回结果。理想情况下,在结果集中,我希望月份在那里,0为Quantity
。包括月度计数,包括不存在数据的月份
SELECT CONVERT(NVARCHAR(7), Modification_Date, 120) [Month],
COUNT(Artifact) as Quantity
FROM table
WHERE Modification_Date > DATEADD(month, -6, getdate())
GROUP BY CONVERT(NVARCHAR(7), Modification_Date, 120)
ORDER BY [Month] DESC
这让我类似的结果:
Month Quantity
------- --------
2013-02 10
2012-11 12
2012-10 5
2012-09 29
正如你可以看到,2012年12月和2013年1月都没有在结果集中。我想让那些月份在那里代表0 Quantity
,这样我就可以在SQL报告条形图中使用这些数据,并使这些月份以0值表示。目前在条形图上它完全跳过了这几个月。有没有办法在过去6个月内生成yyyy-mm
Month
列而不是仅仅使用Modification_Date
?
这很好用!非常感谢。你说得对,没有必要使用NVARCHAR。我已经看到了一个使用它的日期转换示例,并将其用于查询中,而不用考虑它。 – sbrown23 2013-03-06 02:33:45