Access 数据库需要从另一个表中获取最近日期的记录
Posted
技术标签:
【中文标题】Access 数据库需要从另一个表中获取最近日期的记录【英文标题】:Access Database Need to fetch a record with most recent date from another table 【发布时间】:2016-06-09 14:53:58 【问题描述】:我已经在这个查询上停留了几个小时,希望 Access Guru 可以帮助我。
我正在编写一个 SELECT 查询来与另一个表(1 到多个)进行内部连接。我只需要获取最近日期的记录。我研究并尝试了许多不起作用的查询示例。
离我最近的就是这个
SELECT
tblData.RecentDate,
tblData.ID,
tblData.Name,
tblData.Address
FROM [table1]
INNER JOIN
( SELECT Top 1 *
FROM [table2] bh1
ORDER BY bh1.RecentDate DESC
) tblData
ON [table1].[ID] = tblData.[ID])
Top 1 没有给我每个 ID 的记录。如果我删除前 1 个,我会看到带有 ID 的所有记录,但我注意到最近日期字段是空白的。如果我在查询中保留 Top 1,则 ID 1 和 4 的记录不在结果中。
我也尝试了以下
INNER JOIN
( SELECT Max(bh1.RecentDate) as RecentDate, bh1.Name, branchhistory.Address, bh1.City,
FROM [table2] bh1
GROUP BY bh1.ID
) tblData
ON [table1].[ID] = tblData.[UDID]
此查询仅在我选择 Max(bh1.RecentDate) 作为RecentDate, bh1.ID 时才有效 和 groupby bh1.ID ......但我还有其他需要获取的字段 添加到 Group By 并且不会只返回 1 条记录。
从我的内部连接中,我需要获取包含许多字段的记录并按最近的日期值获取。
我刚刚尝试了以下方法,但并非所有 ID 都恢复了
INNER JOIN
( SELECT *
FROM [table2] bh1
WHERE bh1.RecentDate= (SELECT Max(bh2.RecentDate) from [table2] as bh2 WHERE bh1.ID = bh2.ID )
) tblData
ON [table1].[ID] = tblData.[ID]
非常感谢任何帮助。
谢谢
【问题讨论】:
你已经很接近了,见Group by sku, max date SQL 您的第一个查询还有更多内容吗?您有三个左括号FROM ((( [table1]
,但只有一个右括号。
【参考方案1】:
将此保存为永久查询:
SELECT ID, Max(RecentDate) AS MaxDate FROM table2 GROUP BY ID
然后将表 1 按 ID 连接到该查询,然后按 ID 和 MaxDate=Recentdate 连接到 table2
【讨论】:
以上是关于Access 数据库需要从另一个表中获取最近日期的记录的主要内容,如果未能解决你的问题,请参考以下文章
Access SQL 查询:查找表中每个不同条目的日期最近的行