我有两张表可供访问,一张表的日期不同,订单 ID 相同。在第一个中,每个订单只有一条带有日期的记录。在第二个中,我每个订单有多个记录,具有不同的日期 - 不同的事件。我正在尝试从表 2 中找到最接近表 1 中记录的日期。
例如 - 表 1 - 订单 00001 的一条记录
Order 00001, date 20241024
表2 - 订单00001的多条记录
Order 00001, date 20241023
Order 00001, date 20241022
Order 00001, date 20241021
Order 00001, date 20241020
预期结果是根据表 1 中的日期从表 2 中获取最近的过去或相等的日期。
表1
订单:0001,日期:20241020
订单:0002,日期:20241021
表2
订单:1;日期:20241022
订单:1;日期: 20241019 (订单 1 最近的过去日期,没有相同日期记录) 预期结果
订单:1;日期:20241018
订单:2;日期:20241021(订单2同一日期)预期结果
订单:2,日期:20241018
订单 1 的预期输出是 20241019,订单 2 的预期输出是 20241021 我找到了 DMAX 公式,但不知道如何使用它,也不确定是否与此相关。
谢谢!
以下 SQL 应该会给出您正在寻找的结果:
SELECT Table1.fldOrder,
(SELECT TOP 1 Table2.fldT2Date
FROM Table2
WHERE Table2.fldOrder=Table1.fldOrder AND Table2.fldT2Date<=Table1.fldT1Date
ORDER BY Table2.fldT2Date DESC;) AS fldDate
FROM Table1;