0
可能重複:
SQL Group and Sum By Month - Default to Zero如何顯示「O」的年份和月份值,如果沒有記錄在表存在該月/年
在我的表,我是沒有記錄一些月份和年份,所以我需要把'0'的記錄,並需要顯示所有月份和年份從'2006'到'2012'結果,請建議我
在此先感謝
可能重複:
SQL Group and Sum By Month - Default to Zero如何顯示「O」的年份和月份值,如果沒有記錄在表存在該月/年
在我的表,我是沒有記錄一些月份和年份,所以我需要把'0'的記錄,並需要顯示所有月份和年份從'2006'到'2012'結果,請建議我
在此先感謝
虛擬纔是你真正的表...
WITH DummyDates (Date) AS (
SELECT DATEADD(DAY, DATEDIFF(DAY, 0, '20121231') - DATEDIFF(DAY, '20060101', '20121231'), 0)
UNION ALL SELECT DATEADD(DAY, 1, Date)
FROM DummyDates
WHERE DATEADD(DAY, 1, Date) <= '20121231')
SELECT DatePart(yy,DummyDates.Date) as [Year],DATEPART(MM,DummyDates.Date) as [Month],SUM(Case when dummy.date is null then 0 else 1 end) as cnt
FROM DummyDates
LEFT Join dummy on dummy.Date=DummyDates.Date
Group by DatePart(yy,DummyDates.Date),DATEPART(MM,DummyDates.Date)
Order by DatePart(yy,DummyDates.Date),DATEPART(MM,DummyDates.Date)
OPTION (MAXRECURSION 0)