このようなテーブルがあります
スワイプ詳細
EMPID EVENT_TYPE Swipe_time
1 EN 2012-06-01 12:00
1 EX 2012-06-01 12:30
2 EN 2012-06-01 12:50
1 EN 2012-06-01 13:10
2 EX 2012-06-01 13:30
2 EN 2012-06-01 14:00
2 EX 2012-06-01 19:00
1 EX 2012-06-01 19:30
基本的に従業員のスワイプの詳細を保存します(ENは「スワイプイン」、EXは「スワイプアウト」)
特定の時間枠でオフィスにいる時間が最も長い EMPID を見つけたい。したがって、入力は開始時刻と終了時刻になります (例: 2012-06-01 12:30 と 2012-06-05 18:30)。
次の 3 つの条件にも注意してください。
時間枠の前にオフィスに入った従業員がいる可能性があります。この場合、スワイプをその従業員の時間枠の開始と見なす必要があります。
時間枠の後に終了する従業員の場合と同様に、スワイプアウトの時間は時間枠の終わりになります。
スワイプイン時間が時間枠より短く、スワイプアウト時間が時間枠より長い従業員がいる場合、これらすべての empID を結果として表示する必要があります。
それを行う最良の方法は何ですか?単一のクエリで可能ですか?