同じテーブルの行として表される2つのイベントの時間差を取得する必要があります。なかでも、行は次のフィールドがあります。フィールドと一致する2つの日付とSQLテーブルの別の特定のフィールド値を減算します
JobNum
EventDate
Event
Event
フィールドは、イベントがそのジョブの開始や終了であるかどうかを確認するために使用されています。
JobNum
が同じであるEventDate
フィールドの時間差を取得する必要があります。単一JobNum
のための複数のイベントが存在する可能性があるため、私はまたJobNum
が同じであり、唯一の(常にのみJobNum
につき1つのStarting
と1 Finished
イベントがあります)EventDate = 'Finished'
で行から行EventDate= 'Starting'
を減算するように指定する必要があります。
次は、私の知る限りは得ているが、そのが動作していないようです。
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の唯一の1つのレコードを確認するのですか?あなたのデータがそうでないように見えます。 – Squirrel