根据日期仅选择每个记录的最新版本| MS Access

时间:2019-09-13 02:30:27

标签: ms-access

当前,我有一个包含3列的Access表:

个人ID,代码,日期

PersonID在不同的日期可以有不同的代码,我只想在最新的一天显示最新的代码。

完整表格:

img

我正在寻找的查询的结果:

Columns

我尝试将MAX条件添加到数据列,但似乎不起作用:

MAX([Date])

1 个答案:

答案 0 :(得分:0)

有多种方法可以做到这一点。第一个很可能是最简单的。这与Rene在评论中发布的链接完全相同。

您需要在where子句中使用子查询,以通过MAX函数获取最新日期。

SELECT *
FROM [Table]
WHERE Date = (SELECT MAX(T1.Date) FROM [Table] AS T1 WHERE T1.PersonID = Table.PersonID)

在更复杂的版本中,您还可以通过内部联接获得相同的结果:

SELECT
           TABLE.PersonID
         , TABLE.Code
         , MaxDate
FROM
           [Table]
           INNER JOIN
                      (
                               SELECT
                                        PersonID
                                      , Max(DATE) AS MaxDate
                               FROM
                                        [Table]
                               GROUP BY
                                        PersonID
                      )
                      AS T1
                      ON
                                 (
                                            TABLE.PersonID = T1.PersonID
                                            AND TABLE.Date = T1.MaxDate
                                 )

您将获得以下信息:

PersonID    Code    Date
115         38833   8/14/2019
117         38838   6/13/2018