我有以下SQL查詢計數訂單,並按每個日期(日期)進行分組。SQL計數記錄,按日期分組並填寫缺失日期?
因此,下面的結果:
01/02/2014 = 10
02/02/2014 = 2
05/02/2014 = 7
07/02/2014 = 4
查詢:
SELECT TOP(@NumberOfRecords) DATEADD(dd, 0, DATEDIFF(dd, 0, AddedDate)) AS Date, COUNT(DISTINCT ID) AS Count
FROM OrderSpecs
GROUP BY DATEADD(dd, 0, DATEDIFF(dd, 0, AddedDate))
ORDER BY Date DESC
我的問題是,怎樣才能讓我的查詢填寫任何在兩者之間缺少的日期,並設置計數值爲0?
例期望的結果:
01/02/2014 = 10
02/02/2014 = 2
03/02/2014 = 0
04/02/2014 = 0
05/02/2014 = 7
06/02/2014 = 0
07/02/2014 = 4
你取出時間閱讀本非常感謝。
謝謝你,我真的很感激你回到我身邊。一個問題是,dt列正在返回第一個日期記錄的時間部分並將其應用於所有其他日期。即** 20/12/2013 14:42:56 **,那麼下一個記錄是** 21/12/2013 14:42:56 **。您填寫空白日期的解決方案正在運行,但是,第一個項返回時,所有計數結果爲空,第一個計數結果項爲1.我要查找的結果應該是** Date:20/12/2013 Count :4 **,**日期:21/12/2013計數:0 **,**日期:22/12/2013計數:7 **。 – RobHurd
已根據您的意見對我的答案進行了一些修改。解決方案是假設AddedDate是日期字段,但實際上它是一個日期時間字段,我想這是意想不到的結果。讓我知道編輯工作與否! –
謝謝修改Dipendu保羅。我真的很感謝你的幫助。最初你的修正案沒有奏效,但是我編輯了** DECLARE mindate DATETIME **&** DECLARE maxdate DATETIME **到** DATE **,現在它看起來像預期的那樣工作。我需要更徹底地檢查返回的結果,但在表面上看起來工作得很好。我無法對你的幫助表示感謝。 – RobHurd