【发布时间】:2017-11-04 17:34:55
【问题描述】:
下面是我的输入代码
ID EMP_ID PROJECT_NAME START_DATE END_DATE
1 10016351 ABC 22-12-2016 15-05-2017
2 10016351 ABC 01-09-2016 22-11-2016
1 10081503 RTBS AMaaS 21-11-2016 15-02-2017
2 10081503 RTBS AMaaS 18-07-2016 25-11-2016
3 10081503 RTBS AMaaS 21-08-2016 13-10-2016
4 10081503 RTBS AMaaS 03-02-2015 22-05-2015
1 10089293 RTBS PDaaS 17-02-2017 31-12-2017
2 10089293 RTBS PDaaS 13-06-2016 14-02-2017
我需要检查员工,日期是否重叠。如果是,那么它将返回最小开始日期和最大结束日期并标记为“O”。
例如,对于 emp_id = 10081503,日期重叠 21-11-2016 介于 18-07-2016 和 25-11-2016 之间,也 21-08-2016 介于 18-07-2016 和 25-11-2016 之间 因此查询应返回开始日期为 18-07-2016(分钟),结束日期为 重叠的日期为 2017 年 2 月 15 日(最大值)。 对于其余条目,它应该返回带有标志“N”的相同条目。
EMP_ID |项目名称 | START_DATE | END_DATE |旗帜 10081503 | RTBS AMaaS | 21-11-2016 | 15-02-2017 | ○ 10081503 | RTBS AMaaS | 03-02-2015 | 22-05-2015 |否
我的最终输出应该是这样的,
ID EMP_ID PROJECT_NAME START_DATE END_DATE FLAG
1 10016351 ABC 22-12-2016 15-05-2017 N
2 10016351 ABC 01-09-2016 22-11-2016 N
1 10081503 RTBS AMaaS 21-11-2016 15-02-2017 O
2 10081503 RTBS AMaaS 03-02-2015 22-05-2015 N
1 10089293 RTBS PDaaS 17-02-2017 31-12-2017 N
2 10089293 RTBS PDaaS 13-06-2016 14-02-2017 N
【问题讨论】:
-
您在问题中注意到
emp_id10081503的start_date应该是2016-07-18(最小值),但您的“最终输出”显示2016-11-21。 -
感谢您的帮助..!
标签: sql sql-server