【发布时间】:2012-07-01 09:30:18
【问题描述】:
我的数据集如下:
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 已被标记为多个 Manager,那么我们需要检查
如果他被任何经理标记为
ACTIVE,那么我们应该 不考虑一样。获取该 Emp 的状态为<> ACTIVE的那些记录。例如:- 对于 Amy,我们应该排除记录ACTIVE状态。我们应该使用INSERVICE和INACTIVE - 如果一个 Emp 已被标记到多个 Manager,但他与所有 Manager 都处于 INACTIVE 状态,则保留 max(
MODIFIED_DATE) 记录并获取剩余记录 例如:- 对于 Keith,由于 Mgr 记录的 Status 都是 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
【问题讨论】: