SQLテーブルのヘルプが必要です。SQLクエリの問題
イベントID、PERSONID、イベントタイプ、イベント時刻(日時)、およびいくつかの他の下位カラム:
テーブルは、次の列を含んでいます。
2つの主要なイベントタイプは、ドアを開き、ドアを閉じることです。
私はドアを開けて、それを閉じたり、彼がドアを開けると別のものを開いて同じ人物間(秒)の持続時間を必要としています。(これはもちろん、単純にドアを開けるのシーケンスを可能にする)
だけに人1がドアを開け、人2がドアを閉じていれば、クエリーから返された行はないはずです。
私はそれが効率的であることを望みますが、それは必須ではありません。
EventID | PersonID | EventType | EventDate | PreviousDoor | CurrentDoor
1 | 1 | 1 | 12/10/2010 12:00:01.024 | 0 | 23
2 | 1 | 2 | 12/10/2010 12:05:40.758 | 23 | 0
3 | 2 | 1 | 12/10/2010 12:12:05.347 | 0 | 12
4 | 1 | 1 | 12/10/2010 12:50:12.142 | 0 | 23
5 | 2 | 2 | 12/10/2010 13:00:06.468 | 12 | 23
6 | 3 | 1 | 13/10/2010 13:00:06.468 | 0 | 23
イベントタイプ:1(オープンドア)、2(クローズドドア)
私は(SQLEXPRESS)ここで
2008 SQLマイクロソフトのサーバーを使用していますが、テーブルの一例です
結果は次のようになります。
EventID | PersonID | EventType | EventDate | SecondsDifference
1 | 1 | 1 | 12/10/2010 12:00:01.024 | 339
3 | 2 | 1 | 12/10/2010 12:12:05.347 | 2881
私は本当にあなたの男の助けを使用することができます。
ありがとうございます。
私はLEFTを回すと、内側に登録しよ示唆( 'p2.EventIDがNULL'冗長化されていない作り)に参加 - OPのみペアリングオープン/クローズイベントを望んでいる - と' WHERE p1.EventType = 1 'を追加します調子。 –
@KevRitchieなぜLEFT JOIN?あなたはより良い結果を得るために 'CurrentDoor'と' PreviousDoor'を使う必要があります:) –
@aF - GMTA。 :-) –