【发布时间】:2021-11-22 02:32:24
【问题描述】:
在 MS Access 中,我有 DateList 表,其中包含不同订单的到期日期。因此,该表有两列:OrderNo 和 DueDate。对于某些订单号,可能有多个 DueDate。该表可能如下所示:
OrderNo DueDate
100 12/9/2021
101 20/9/2021
102 30/9/2021
100 7/10/2021
102 11/10/2021
103 15/10/2021
…
我的目标是编写一个查询来获取每个 OrderNr 的最新 DueDate。
我创建了两个查询; 第一个,qry1,生成一个没有重复的 OrdNo 列表:
SELECT
DateList.OrderNo AS UniqOrderNo
FROM DateList
GROUPBY DateList.OrderNo;
在第二个查询qry2中,我使用了 DMax 函数来搜索每个订单的 DueDates 中的最大值。
SELECT
qry1.UniqOrderNo
,DMax("[DueDate]","[DateList]","[OrderNo]='[qry1]![UniqOrderNo]'") AS LatDuDate
FROM qry1
INNER JOIN DateList
ON qry1.UniqOrderNo = DateList.OrderNo;
LatDuDate 表示订单的最新 DueDate。
不幸的是,该查询不起作用并且什么也不返回。
现在我的问题:
我的方法/查询有问题吗?
有没有更好的方法在 MS Access 中完成这项任务?
【问题讨论】: