gpt4 book ai didi

sql - 我怎样才能只选择不在另一种行的一周内的行?

转载 作者:行者123 更新时间:2023-12-04 14:29:08 25 4
gpt4 key购买 nike

我有一个基本如下所示的数据表:

Employee ID   ACTION    Action DATE
1 SIC 12/10/15
1 CSL 11/10/15
2 SIC 12/10/15
2 CSL 11/10/15
1 CSL 10/22/15
2 CSL 10/22/15
1 SAC 10/21/15
2 SAC 10/21/15

我正在尝试选择包含不在 SIC 或 SAC 操作行 7 天内的 CSL 操作的每一行。我想要的输出是这样的:

Employee ID   ACTION    Action DATE
1 CSL 11/10/15
2 CSL 11/10/15

我试过的是像这样将表连接到自身:

Select *
From
TableName A join TableName B on Keyfield A = Keyfield B
Where
A.Action = 'CSL' and
B.Action in ('SIC','SAC') and
A.Action_DT not between B.Action_DT-7 and B.Action_DT+7

但是,这会返回不需要的 10/22/15 行,我假设是因为它距离 12/10/15 SIC 行超过 7 天。

如有任何帮助,我们将不胜感激。

最佳答案

你可能更需要一个自反连接而不是自内连接。像这样尝试:

select *
from TableName A
where A.action = 'CSL'
and not exists (
select 1
from TableName B
where B.action in ('SIC','SAC')
and B.key_field = A.key_field
and A.action_dt between B.action_dt-7 and B.action_dt+7
);

注意:我没有为复制您的输入数据付出任何努力,因此此查询只是假设性的,甚至可能行不通。无论如何你都可以试试。

关于sql - 我怎样才能只选择不在另一种行的一周内的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35017043/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com