我正在計數(按小時計)數據庫中的條目數。我已經成功編寫了一個按小時計算的查詢,但它省略了零個小時的查詢。我需要結果包括零。我環顧了網絡,發現了很多建議。我創建了一個視圖,其中包含一個包含日期時間條目的列。我試過將主表連接到這個視圖,並且沒有連接,我得到了相同的結果。仍然沒有零。想知道如何讓這個查詢返回零。我正在使用MS SQL 2008 R2。有什麼建議麼?按小時計算行數幷包含零
declare @limit datetime;
use InputArchive
set @limit = current_timestamp;
set @limit = DATEADD(hour, -72, @limit);
SELECT DATEADD(hour, datediff(hour, 0, ArchivedItems.RecordCreated), 0) as TimeHour, COUNT(ISNULL((ArchivedItems.RecordCreated),' ')) as NumPerHour
FROM ArchivedItems
LEFT OUTER JOIN vw_hoursalot
ON vw_hoursalot.dtHr = ArchivedItems.RecordCreated
where InputTypeId = 5 or InputTypeId = 6 or InputTypeId = 8 and (ArchivedItems.RecordCreated >= @limit)
Group BY DATEADD(hour, Datediff(hour, 0, ArchivedItems.RecordCreated), 0)
order by DATEADD(hour, datediff(hour, 0, ArchivedItems.RecordCreated), 0) desc
option (MAXRECURSION 0)
更新:我改變了看法hoursalot是按小時 我很抱歉,但我不知道你所說全視角SQL的意思。
我不能把任何兩岸信息從archivedItems表出於法律原因,但RecordCreated列是海峽戳即「2013年4月5日14:09:59.167」
無論是顛倒順序,或更改條件的權利OUTER JOIN - 你需要這個查詢來開始全部小時的列表,然後連接到另一側。 – AHiggins 2014-10-20 19:41:16
正確的外部聯接和交換命令兩個都沒有工作,他們都返回相同的東西,這是兩行,每個結果一個計數。應該有兩個以上的方式 – BVT 2014-10-20 19:46:18