以下のようなデータセットがあります。
EMP_NAME MGRNAME STATUS MODIFIED_DATE
---------------------------------------------------
Amy John ACTIVE 01/15/2012 00:00:00
Amy Ken INSERVICE 06/08/2000 00:00:00
Amy Tom INACTIVE 04/02/2010 00:00:00
Ron David ACTIVE 01/15/2008 00:00:00
Keith Jack INACTIVE 08/10/2005 00:00:00
Keith Cat INACTIVE 04/30/2008 00:00:00
Keith Ken INACTIVE 02/04/2010 00:00:00
Mary Stephen INACTIVE 10/18/2010 00:00:00
ここで、以下の条件に基づいて重複行を特定する必要があります。
- Emp に 1 つの Mgr がタグ付けされている場合、同じことを考慮する必要はありません。例:- ロン、メアリー
- Emp が複数のマネージャーにタグ付けされている場合、彼がいずれかのマネージャーに としてタグ付けされているかどうかを確認する必要があり
ACTIVE
ます。同じことを考慮すべきではありません。ステータスが<> ACTIVE
その Emp のレコードを取得します。例:- エイミーの場合、ステータスのあるレコードを除外する必要がありACTIVE
ます。とでレコードを取得する必要がINSERVICE
あり ますINACTIVE
- Emp が複数のマネージャにタグ付けされているが、その全員が INACTIVE ステータスである場合、max(
MODIFIED_DATE
) レコードを残して残りのレコードをフェッチします。例: キースの場合、両方のマネージャ レコードのステータスが INACTIVE であるため、 (MODIFIED_DATE
) であり08/10/2005 00:00:00
、04/30/2008 00:00:00
最終的な出力は次のようになります。
EMP_NAME MGRNAME STATUS MODIFIED_DATE
------------------------------------------------------
Amy Ken INSERVICE 06/08/2000 00:00:00
Amy Tom INACTIVE 04/02/2010 00:00:00
Keith Jack INACTIVE 08/10/2005 00:00:00
Keith Cat INACTIVE 04/30/2008 00:00:00