我在數據庫中的數據如下:計數幾個月沒有記錄
+---------------------+-------------+
| CloseTime | Count |
+---------------------+-------------+
| 10.2.2014 13:19 | 1 |
| 5.12.2014 13:19 | 1 |
| 4.2.2014 13:19 | 1 |
| 2.1.2014 13:19 | 1 |
| 4.12.2014 13:19 | 1 |
+---------------------+-------------+
現在,我有這樣的
SELECT DATENAME(MONTH, CLOSETIME) AS CLOSEMONTH, COUNT(*) as CNT
FROM TABLE
WHERE CLOSETIME >= DATEADD(MONTH, DATEDIFF(MONTH, '19000101', GETDATE())-7, '19000101')
AND CLOSETIME < DATEADD(MONTH, DATEDIFF(MONTH, '19000101', GETDATE()), '19000101')
GROUP BY DATENAME(MONTH, CLOSETIME);
這導致
+---------------+-------+
| CloseTime | CNT |
+---------------+-------+
| February | 2 |
| January | 1 |
| December | 2 |
+---------------+-------+
的查詢查詢以最近7個月的數據獲取方式工作。我需要的結果是
+---------------+-------+
| CloseTime | Count |
+---------------+-------+
| February | 2 |
| January | 1 |
| December | 2 |
| November | 0 |
| October | 0 |
| September | 0 |
| August | 0 |
+---------------+-------+
因此,如果有與後幾個月關閉時間沒有記錄,它應該還是回到了一個月零計數。如何實現這一目標?我更喜歡SQL解決方案,這意味着沒有任何過程或腳本。
我試圖
SELECT DATENAME(MONTH,DATEADD(MONTH,-1,GETDATE())) as HELP_MONTH
UNION ALL
...
,然後加入它,但它並沒有成功。
相關http://stackoverflow.com/q uestions/7121914/sql-group-and-sum-by-month-default-to-zero?rq = 1 – 2014-03-04 12:34:45
你工作在哪個'DBMS'? – Hamidreza
SQL Server 2008 R2,忘了提及,感謝您的通知! – DNac