我怎样才能做一个 table 加入,其中复合键是一个访问号码和一个日期 +/- 1 天
How can I do a table join where the composite key is an access number and a date +/- 1 day
我正在尝试进行 table 连接,其中复合键是访问号和快照日期,感兴趣的数据是状态。下面是简单连接的样子:
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
我的障碍是感兴趣的数据 Status 没有填充在 SNAPSHOT_DATE 的精确匹配上(20% 的时间)。有时它与 table A 中的 SNAPSHOT_DATE 相差 +/- 1。仍然有记录匹配,但 table B 将只是 return NA。
我正在尝试编写一个连接案例,检查 Status returns 是否为 NA,以查看前一天 Table_B 的复合键和下一天的复合键一天看看是否有可用的有效值(即,不是 NA)。
在下面的 table 中,我希望查询识别第 3 行 return 是一个 NA,因此它会查看前一天或第二天以找到有效值。它应该发现第 4 行有一个非 NA 值,return 那一个。
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 ;
我正在尝试进行 table 连接,其中复合键是访问号和快照日期,感兴趣的数据是状态。下面是简单连接的样子:
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
我的障碍是感兴趣的数据 Status 没有填充在 SNAPSHOT_DATE 的精确匹配上(20% 的时间)。有时它与 table A 中的 SNAPSHOT_DATE 相差 +/- 1。仍然有记录匹配,但 table B 将只是 return NA。
我正在尝试编写一个连接案例,检查 Status returns 是否为 NA,以查看前一天 Table_B 的复合键和下一天的复合键一天看看是否有可用的有效值(即,不是 NA)。
在下面的 table 中,我希望查询识别第 3 行 return 是一个 NA,因此它会查看前一天或第二天以找到有效值。它应该发现第 4 行有一个非 NA 值,return 那一个。
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 ;