好吧,我的標題看起來有點奇怪,但我可以找到更好的方式來標題我的問題。按用戶查詢,按月包括不存在記錄的默認值
我現在的SQL語句如下所示:
SELECT
ActionBy,
DATEADD(MONTH, DATEDIFF(MONTH, 0, ActionCreateDate), 0) AS 'dateStart',
CONVERT(CHAR(3), (DATEADD(MONTH, DATEDIFF(MONTH, 0, ActionCreateDate), 0)), 100) AS 'Month' ,
YEAR(ActionCreateDate) AS 'YEAR',
SUM([TimeTakenToComplete]) AS TOTAL
FROM
[myTable]
WHERE
[TimeTakenToComplete] IS NOT NULL
AND DeleteDate IS NULL
AND ActionBy IS NOT NULL
GROUP BY
ActionBy, DATEADD(MONTH, DATEDIFF(MONTH, 0, ActionCreateDate), 0),
YEAR(ActionCreateDate)
ORDER BY
DATEADD(MONTH, DATEDIFF(MONTH, 0, ActionCreateDate), 0) ASC
最終的結果看起來是這樣的:
user1 , 2013-06-01 00:00:00.000 , Jun , 2013 , 1000
user2 , 2013-06-01 00:00:00.000 , Jun , 2013 , 998
user3 , 2013-06-01 00:00:00.000 , Jun , 2013 , 600
user1 , 2013-07-01 00:00:00.000 , Jul , 2013 , 1110
user3 , 2013-07-01 00:00:00.000 , Jul , 2013 , 2330
我的問題是,我想對所有用戶的記錄,對於所有月份的默認值爲0.
所以我希望的結果看起來像這樣:
user1 , 2013-06-01 00:00:00.000 , Jun , 2013 , 1000
user2 , 2013-06-01 00:00:00.000 , Jun , 2013 , 998
user3 , 2013-06-01 00:00:00.000 , Jun , 2013 , 600
user1 , 2013-07-01 00:00:00.000 , Jul , 2013 , 1110
user2 , 2013-07-01 00:00:00.000 , Jul , 2013 , 0
user3 , 2013-07-01 00:00:00.000 , Jul , 2013 , 2330
有沒有什麼辦法可以達到這個結果,還是我應該去編程解決這個問題?
'user'是不是一種選擇..? –
是的,它可以是... – MaVRoSCy
不,它不可以。你必須檢查你的'WHERE'子句並使條件'SUM'。 –