0
我真的不擅長SQL,我只想寫一個顯示圖表中某些日誌數據的查詢。Transact SQL查詢幫助
我有一個SQL Server表,其中我記錄了對Web服務的請求。
ID RequestedFunction RequestDateTime
1 'Confirm()' 2010-12-15 13:27:01.234
2 'Register()' 2010-12-16 12:27:00.678
3 'Confirm()' 2010-12-16 21:00:05.456
現在,我想編寫返回我每天通過RequestedFunction分組做出的請求數的查詢;返回給我一個這樣的數據集。
Day ConfirmFunctionRequests RegisterFunctionRequests
15 1 0
16 1 1
這可能嗎?所有我能想出到目前爲止是這樣的,
;WITH CTE AS
(
SELECT id,
[Day] = CAST(day(requestDateTime) AS INT),
RequestedFunction
FROM [Log]
WHERE month(RequestDateTime)=12 AND
year(RequestDateTime)=2010
)
SELECT [Day],COUNT(ID) AS [#Requests] FROM CTE GROUP BY [Day]
它返回每天的請求數,沒有不同類型的請求之間的區別。我如何編寫一個查詢,根據'RequestedFunction'中的值將請求計入兩個不同的列中?
非常感謝你來完成!只是想知道,我是否也可以使用DATEPART(dd,RequestDateTime)作爲DATEADD(dd,0,DATEDIFF(dd,0,RequestDateTime))的替代方案? – 2010-12-17 12:36:26
唯一的問題是,它只會按天分組,所以如果你有條目在1月15日和2月15日,它會將它們加在一起 – 2010-12-17 12:41:55
是的,我想限制使用WHERE子句,也做小時,每個給定的一天等我嘗試使用DATEADD(hh,0,DATEDIFF(hh,0,RequestDateTime))幾個小時,但輸出似乎不太可讀。 – 2010-12-17 13:01:56