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 查询:查找表中每个不同条目的日期最近的行

如何根据日期时间约束从另一个数据框中提取行?

如何在MS ACCESS中从另一个查询中传递PARAMETERS到查询中(不用VBA)?

用单个列从另一个表更新一个表中的多个列?

如何使用 join codeigniter 从另一个表中获取值