複数のイベント タイプを持つ複数の行を持つ 1 つのテーブルがあります。
すべての開始イベントには終了イベントがあります。設計上の選択により、開始イベントの列には終了イベントの ID がありますが、その逆はありません。同様に、開始理由は終了理由と同じではありません。
私のコラムは次のとおりです。
eventTYPE - the type of event (start, end, terminate etc)
eventID - unique ID
eventDate - date the event will happen
endEvent - ID of end event (if event type <> start - this will be NULL)
reason - Reason for the event
私はすべての eventType=END を返す必要があります。これは、比較対象の eventType=START の理由がユーザー指定の日付の特定の理由ではないことです。
次の 3 つのステートメントを使用する必要があることはわかっていますが、それらを組み合わせる方法がわかりません。
SELECT eventId
FROM Events
WHERE eventType='END' and eventDate='<USER SPECIFIED>'
SELECT endEvent
FROM Events
WHERE eventType='START' and reason <> 'mgp' and endEvent='<ID FROM ABOVE>'
SELECT *
FROM dbo.Events
WHERE eventType='END' and eventId='<END EVENT FROM ABOVE>'
どんな助けでも大歓迎です!