我已詢問:找茬
SELECT
MemberId,
FirstName,LastName,
[DateOfChange]
,(select title from StatusList where idStatus=[OldStatus]) as [OldStatus]
,(select title from StatusList where idStatus=[NewStatus]) as [NewStatus]
FROM [statusLog] , Users where
statusLog.IdUser=Users.IdUser
此查詢給我下面的結果:
我有一個列狀態OLDSTATUS和NEWSTATUS和DateOfChange。
我只是想在狀態改變的小時數上有所不同。
即從DateOfChange舊狀態OnCall中巡邏我想找到兩個日期之間的區別:
2014-04-04 16:13:33:000 and 2014-04-04 16:13:44:000
我想:
SELECT
MemberId,
FirstName,LastName,
[DateOfChange],
DATEDIFF(HOUR,select [DateOfChange] from statusLog,Users where idstatus=[OldStatus]
,select [DateOfChange] from statusLog,Users where idstatus=[NewStatus])
,(select title from StatusList where idStatus=[OldStatus]) as [OldStatus]
,(select title from StatusList where idStatus=[NewStatus]) as [NewStatus]
FROM [statusLog] , Users where
statusLog.IdUser=Users.IdUser
但這並不奏效。我已經加入
兩個表是:
用戶:
statusLog:
請幫助我。
在上述查詢中,我如何在這種時間差異?
編輯:
SELECT
MemberId,
FirstName,LastName,
[DateOfChange] ,
(SELECT
DATEDIFF(HOUR, SL.DateOfChange, SLN.StatusTo) AS StatusDuration
FROM
StatusLog SL
OUTER APPLY (
SELECT TOP(1)
DateOfChange AS StatusTo
FROM
StatusLog SLT
WHERE
SL.IdUser = SLT.IdUser
AND SLT.DateOfChange > SL.DateOfChange
ORDER BY
SLT.DateOfChange ASC
) SLN) Hourss
,(select title from StatusList where idStatus=[OldStatus]) as [OldStatus]
,(select title from StatusList where idStatus=[NewStatus]) as [NewStatus]
FROM [statusLog] , Users where
statusLog.IdUser=Users.IdUser
編輯2:
它顯示我錯誤的值 –
我做了一個編輯7分鐘前,在子選擇中添加一個順序。改變之後你有沒有嘗試過? –
是的,我做到了,在編輯2中得到的結果如上,但是它的錯誤差異在 –