【发布时间】:2019-09-07 01:23:04
【问题描述】:
我在查询方面需要帮助,并会尽力解释我的问题。我有下面的 11 行表格,它是通过从 SharePoint 列表中导入值创建的。
ID SHPT_ID STATUS_DESC REC_UPDT_DTTM REC_CRTE_DTTM EXPIR_DT
1 270 Active 1-18-2019 1-19-2019 1-24-2019
2 270 In Progress 1-23-2019 1-24-2019 2-3-2019
3 270 Completed 2-2-2019 2-3-2019 2-19-2019
4 270 Completed 2-18-2019 2-19-2019 2-28-2019
5 270 In Progress 2-27-2019 2-28-2019 3-2-2019
6 270 Completed 3-1-2019 3-2-2019 3-6-2019
7 270 Completed 3-5-2019 3-6-2019 12-31-9999
8 295 Active 12-20-2018 12-21-2018 12-26-2018
9 295 Completed 12-25-2018 12-26-2018 12-31-9999
10 345 Active 6-7-2017 6-8-2017 6-14-2017
11 345 Completed 6-13-2017 6-14-2017 6-22-2017
12 345 Completed 6-21-2017 6-22-2017 12-31-9999
与特定 SharePoint ID 关联的最后一条记录会带来“12/31/9999”的 EXPIR_DT(到期日期)。每次更新 SharePoint ID 记录中的值时,都会创建一个新行。
从这个表中,我试图特别拉回 3 行(ID = #6、9 和 11 的行。)
这些是当 STATUS_DESC 上次等于“已完成”时具有最小 REC_UPDT_DTTM 的记录。对于 SharePoint ID = 270 的行,有一个实例是记录“已完成”但被反转为“处理中”,然后又被放回“已完成”。对于这条记录,不应该取ID=3的行,而应该取ID=6的行。
有没有人可以帮助我处理这段代码,因为我不知道如何继续获取我想要的行?我知道我必须使用子查询和函数,但我现在真的卡住了。
如果需要更多信息,请告诉我。
【问题讨论】:
标签: sql sql-server subquery sql-server-2016 querying