說,我有這些記錄的表:總和列,如果沒有記錄這一個小時,店內價值爲0
Date |Instances
2015-10-12 06:15:00.000 |2
2015-10-12 06:45:00.000 |5
2015-10-12 04:15:00.000 |2
2015-10-12 04:25:00.000 |3
2015-10-12 03:15:00.000 |5
2015-10-12 02:15:00.000 |6
2015-10-12 01:15:00.000 |6
我管理總結在同一時刻所有的實例用下面的查詢一起:
SELECT DATEPART(HOUR,DATE) as TIMEHOUR,
SUM([INSTANCES]) as INSTANCESUM
FROM TABLE (NOLOCK)
where DATE BETWEEN DATEADD(HOUR, -5, GETUTCDATE()) AND GETUTCDATE()
group by DATEPART(HOUR, DATE)
order by DATEPART(HOUR, DATE) DESC
的結果是這樣的:
TIMEHOUR | INSTANCESUM
6 | 7
4 | 5
3 | 5
2 | 6
1 | 6
但我需要的侯如果沒有,則記錄例數爲0。說UTC時間是06:00表將返回這樣的事情:
TIMEHOUR | INSTANCESUM
6 | 7
---> 5 | 0 <---
4 | 5
3 | 5
2 | 6
1 | 6
它是可能的MS SQL?
[編輯]
我需要的是一個結果表中總會有根據我設置的時間範圍條目相同的量。所以,即使在那個時間範圍內沒有記錄,結果表仍然有數量的紀錄,只是0的值
TIMEHOUR | INSTANCESUM
6 | 0
5 | 0
4 | 0
3 | 0
2 | 0
1 | 0
後續問題:有沒有辦法將TIMEHOUR作爲DATETIME格式顯示yyyy-mm-dd hh? – gin
不應該是* DATE *而不是* TIMEHOUR *在組中,並按順序排列?看起來這是一個錯字。 – niksofteng
@vnikhil是的,這是一個錯字。感謝您指出這一點 – gin