gpt4 book ai didi

mysql - 如何进行表连接,其中组合键是访问号码和日期 +/- 1 天

转载 作者:行者123 更新时间:2023-11-29 09:30:16 25 4
gpt4 key购买 nike

我正在尝试执行表连接,其中复合键是访问号和快照日期,感兴趣的数据是状态。简单连接如下所示:

SELECT A.Access_Num, B.Access_Num, A.SNAPSHOT_DATE, B.SNAPSHOT_DATE, B.Status
FROM A
INNER JOIN B
ON A.Access_Num = B.Access_Numb AND A.SNAPSHOT_DATE = B.SNAPSHOT_DATE

我的障碍是感兴趣的状态数据未在与 SNAPSHOT_DATE 完全匹配的情况下填充(20% 的时间)。有时它与表 A 中的 SNAPSHOT_DATE 存在 +/- 1 的差异。仍然有记录匹配,但表 B 将仅返回 NA。

我正在尝试编写一个连接案例,检查 Status 是否返回为 NA,查看 Table_B 前一天的复合键,以及第二天的复合键,以查看是否有可用的有效值(即,而不是 NA)。

在下表中,我希望查询能够识别第 3 行返回 NA,因此它会查看前一天或后一天以查找有效值。它应该发现第 4 行具有非 NA 值,并返回该值。

Row     A.Access_Num    B.Access_Num    A.SNAPSHOT_DATE    B.SNAPSHOT_DATE  B.STATUS
1 11 11 12-12-2018 12-12-2018 Y
2 11 11 12-13-2018 12-13-2018 Y
3 13 13 12-05-2018 12-05-2018 NA
4 13 13 12-06-2018 Y

最佳答案

您可以在 ON 子句中使用不等式:

SELECT A.Access_Num, B.Access_Num, A.SNAPSHOT_DATE, B.SNAPSHOT_DATE, B.Status
FROM A INNER JOIN
B
ON A.Access_Num = B.Access_Numb AND
A.SNAPSHOT_DATE >= B.SNAPSHOT_DATE - INTERVAL 1 DAY AND
A.SNAPSHOT_DATE <= B.SNAPSHOT_DATE + INTERVAL 1 DAY ;

关于mysql - 如何进行表连接,其中组合键是访问号码和日期 +/- 1 天,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58883221/

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