我有一個簡單的用戶生產報告,每日配額跟蹤。 sql會爲所有用戶返回一週的數據,並且每天都會跟蹤其總數。問題在於,如果他們出局一天並且當天的產量爲零,那麼結果查詢只是跳過那一天而離開它。即使表格當天沒有人員記錄,我也想要返回幾天。SQL服務器查詢不顯示每日日期結果
table:
user date
andy 3/22/10
andy 3/22/10
andy 3/23/10
andy 3/24/10
andy 3/26/10
result:
andy
3/22/10 2
3/23/10 1
3/24/10 1
3/25/10 0
3/26/10 1
所以我的問題是如何得到的查詢返回10年3月25日最新與0
計數(當前查詢我使用):
SELECT A.USUS_ID as Processor, CONVERT(VARCHAR(10),A.CLST_STS_DTM,101) as Date,
COUNT(A.CLCL_ID) as DailyTotal
FROM CMC_CLST_STATUS A
WHERE A.CLST_STS_DTM >= (@Day) AND
DATEADD(d, 5, @Day) > A.CLST_STS_DTM
GROUP BY A.USUS_ID, CONVERT(VARCHAR(10),A.CLST_STS_DTM,101)
ORDER BY A.USUS_ID, CONVERT(VARCHAR(10),A.CLST_STS_DTM,101)
什麼是CTE方法?我喜歡這個想法來創建它,因爲報告只能由一個人每月運行一次。 – 2010-03-22 13:44:38
CTE是一個通用表格表達式。它允許一個表遞歸地調用它自己。它有很多用途,其中之一是生成通常稱爲「數字」表的非常簡單的方法。 – 2010-03-22 13:46:03
@Andrew Jahn - 有一個谷歌公共表格表達式 - 這就是在這裏提到的。 – Paddy 2010-03-22 13:46:24