基于 Access 中两个联合表之间的标准的最大值

问题描述 投票:0回答:1

我有两张表可供访问,一张表的日期不同,订单 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 公式,但不知道如何使用它,也不确定是否与此相关。

谢谢!

ms-access max return-value closest
1个回答
0
投票

以下 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;
© www.soinside.com 2019 - 2024. All rights reserved.