【发布时间】:2021-10-20 00:23:35
【问题描述】:
我有一个有重复的表。每个标题只有一个记录被标记为活动,有时,所有记录都被标记为非活动。因此,如果所有记录都处于非活动状态,我需要选择最后更新的记录,如果有一条处于活动状态,则无论最新日期如何,我都需要选择处于活动状态的记录。
可以在一个简单的查询中做吗?
例如我有
Record_ID Title Status Activity_Date
111 TEST1 Active 10/11/2020
112 TEST1 Inactive 10/11/2020
113 TEST2 Inactive 9/26/2021
114 TEST2 Inactive 4/14/2021
想要的结果是
Record_ID Title Status Activity_Date
111 TEST1 Active 10/11/2020
113 TEST2 Inactive 9/26/2021
我用过
SELECT * FROM TITLES t WHERE t.RECORD_ID > 100
AND t.ACTIVITY_DATE = (SELECT MAX(ACTIVITY_DATE) FROM TITLES WHERE
RECORD_ID = t.RECORD_ID)
但这仅处理最新日期部分并返回以下内容:
Record_ID Title Status Activity_Date
111 TEST1 Active 10/11/2020
112 TEST1 Inactive 10/11/2020
113 TEST2 Inactive 9/26/2021
是否可以使其有条件 - 如果最新日期返回 dups,则使用状态?
【问题讨论】: