我有一個網站的職位表,其中每個條目都有其創建日期。每個日期的項目數,在日期間沒有差距
我要回表所示:
Date Posts
16-11-2009 5
17-11-2009 0
18-11-2009 4
etc
但我在努力尋找正確的SQL。我可以輕鬆獲得按日期分組的帖子,但這並不會返回沒有帖子的日期(例如17-11-2009錯過)。
是否有一些SQL會給我想要的東西?或者我應該使用一些非SQL代碼來處理沒有帖子的日子?
我有一個網站的職位表,其中每個條目都有其創建日期。每個日期的項目數,在日期間沒有差距
我要回表所示:
Date Posts
16-11-2009 5
17-11-2009 0
18-11-2009 4
etc
但我在努力尋找正確的SQL。我可以輕鬆獲得按日期分組的帖子,但這並不會返回沒有帖子的日期(例如17-11-2009錯過)。
是否有一些SQL會給我想要的東西?或者我應該使用一些非SQL代碼來處理沒有帖子的日子?
WITH dates AS
(
SELECT CAST('2009-01-01' AS DATETIME) AS d
UNION ALL
SELECT DATEADD(day, 1, d)
FROM dates
WHERE d <= GETDATE()
)
SELECT d, COUNT(posts.id)
FROM dates
LEFT JOIN
posts
ON posts.date >= d
AND posts.date < DATEADD(day, 1, d)
GROUP BY
d
OPTION (MAXRECURSION 0)
一個簡單的竅門是有一個表,你在它需要的所有日期...然後使用一個外連接此表和一個與職位
之間。如果我記得正確喬凱爾科提醒類似的假期計算和鋁。