【发布时间】:2018-03-06 18:45:33
【问题描述】:
我要完成这项任务,我必须从DIM_CARE_TEAM_MEMBER 表中选择care_team_member_name。条件是,对于特定的care_team_member_Engagement_id,我们需要选择活跃的成员,即其care_team_member_end_date 为空,对于非活跃成员,我们为特定的care_team_member_Engagement_id 选择最大的care_team_member_end_date。
我能够使用以下查询实现第二部分
select
[care_team_member_name],
[care_team_member_Engagement_id],
[care_team_member_end_date],
B.A
from
(select
care_team_member_name,care_team_member_end_date,
[care_team_member_Engagement_id],
row_number() over(partition by [care_team_member_Engagement_id] order by care_team_member_end_date) A
from
DIM_CARE_TEAM_MEMBER) B
where
B.A = 1
但我无法实施第一部分,我选择 care_team_member_name 以获得特定的参与 ID
例如:
care_team_member_name care_team_member_Engagement_id care_team_member_start_date care_team_member_end_date
TM-000022181 a1Y0q0000000woaEAA 2017-08-16 NULL
TM-000022182 a1Y0q0000000wobEAA 2017-08-16 NULL
TM-000022183 a1Y0q0000000wocEAA 2017-08-16 NULL
TM-000022184 a1Y0q0000000wodEAA 2017-08-16 NULL
TM-000022185 a1Y0q0000000woeEAA 2017-08-16 NULL
TM-000030523 a1Y0q0000000woVEAQ 2018-01-03 2018-02-28
TM-000031508 a1Y0q0000000woVEAQ 2018-01-25 2018-02-28
TM-000031798 a1Y0q0000000woVEAQ 2018-03-01 2018-03-05
TM-000031802 a1Y0q0000000woVEAQ 2018-03-01 2018-03-05
TM-000031803 a1Y0q0000000woVEAQ 2018-03-01 2018-03-05
TM-000031805 a1Y0q0000000woVEAQ 2018-03-01 2018-03-05
TM-000031806 a1Y0q0000000woVEAQ 2018-03-01 2018-03-05
TM-000023500 a1Y0q0000000woVEAQ 2017-09-21 2018-03-05
TM-000023503 a1Y0q0000000woVEAQ 2017-09-22 2018-03-05
从这个表中,我必须选择结束日期为空的名称
【问题讨论】:
-
您期望样本数据的输出是什么?
-
我希望护理团队成员的姓名应该是 TM-000023503 用于参与 ID a1Y0q0000000woVEAQ 和 TM-000022181 用于参与 ID a1Y0q0000000wobEAA
标签: sql sql-server datamart