使用内部联接访问从另一个表中选择具有最大日期

时间:2016-06-08 20:06:46

标签: sql ms-access

我在Access中编写了以下查询。

我终于得到了保存而没有错误但是当我点击DataSheet View时,该表显示了表2中的所有记录。

Table1具有唯一ID,并且该ID在table2中有多行(1到多个)。我只需要通过选择Max(MyRecentDate)来获取最新的记录。但是,我的返回VIEW包含ID的所有行。如何才能使此查询仅使用表2中的MAX Date选择一条记录?

...谢谢

SELECT 
[table1].FirstName, 
[table1].MiddleName, 
[table1].LastName,  
[table2].NameDesc,
[table2].MyRecentDate



FROM [table1] 
INNER JOIN
        (
            SELECT [table2].ID,  [table2].NameDesc, MAX( [table2].MyRecentDate) as MyRecentDate
            FROM    [table2]
            GROUP BY  [table2].ID,[table2].NameDesc


        ) [table2]
ON [table1].[ID] = [table2].[ID];

1 个答案:

答案 0 :(得分:0)

这应该可以正常工作。请注意,您可以使用max代替TOP 1

SELECT 
[table1].FirstName, 
[table1].MiddleName, 
[table1].LastName, 
(SELECT TOP 1 [table2].NameDesc FROM [table2] WHERE [table1].[ID] = [table2].[ID]) AS NameDesc,
(SELECT TOP 1 [table2].MyRecentDate FROM [table2] WHERE [table1].[ID] = [table2].[ID]) AS MyRecentDate

FROM [table1]