如何解决如果以后的记录符合条件,则返回ID的结果
样本数据:
date id case type case_review_date
11/1 1 90 Review 11/1
12/27 1 23 Block
1/1 1 12 Review 1/1
1/2 1 45 Failed
1/3 1 78 Review 1/3
1/3 3 62 Failed
1/1 2 33 Review 1/1
1/10 2 63 Failed
目标是仅返回在审阅日期后7天内ID失败的行。因此,对于此示例,它仅应返回ID 1情况12。使用MySQL。通过这个逻辑很难思考。非常感谢您的帮助!
尝试了以下操作,但它似乎无法正常工作,或者根据ID进行了隔离。相反,如果7天内有任何失败案例,它将返回所有审阅条目,无论是否使用相同的ID。因此它返回以下内容:
date id case type case_review_date
1/1 1 12 Review 1/1
1/3 3 62 Failed
select *
from casetable
where exists
(select 1
from casetable
where casetable.type = 'Failed' and DATEDIFF(day,casetable.date,casetable.case_review_date) <= 7)
解决方法
您可以在此处使用存在逻辑:
SELECT date,id,`case`,type
FROM yourTable
WHERE
type = 'Review' AND
NOT EXISTS (SELECT 1 FROM yourTable t2
WHERE t2.id = t1.id AND t2.type = 'Review' AND
t2.date < t1.date) AND
EXISTS (SELECT 1 FROM yourTable t2
WHERE t2.id = t1.id AND t2.type = 'Failed' AND
DATEDIFF(t2.date,t1.date) <= 7);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。