我需要獲取表示爲同一個表中的行的兩個事件之間的時間差。其中,該行具有以下字段:減去具有匹配字段的兩個日期和SQL中的另一個特定字段值表
JobNum
EventDate
Event
的Event
字段用於看該事件是否爲工作開始或結束。
我需要獲得EventDate
字段之間的時間差,其中JobNum
是相同的。因爲可以有單個JobNum
多個事件,我還需要指定JobNum
是相同的,僅從一行EventDate = 'Finished'
減去行其中EventDate= 'Starting'
(總會有隻有每JobNum
一個Starting
和一個Finished
事件)。
以下是據我已經得到了,但它不工作:
Select a.[AutoNumber], DATEDIFF(SECOND, (SELECT m.EventDate
FROM [myTable] m
WHERE m.Event = 'Starting' and a.JobNum= m.JobNum),
(SELECT m.EventDate
FROM myTable m
WHERE m.Event = 'Finished' and a.JobNum= m.JobNum)
)
From myTable a
這部分運行,但隨後提供了以下錯誤:
Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.
我也看了看這個問題,但無法弄清楚如何修改代碼以適應我的情況。 How to get difference between two rows for a column field?
任何幫助將不勝感激。
是它確認只有一個'Starting'和'Finished'每JobNum的單記錄?看起來你的數據沒有。 – Squirrel