当前,我有一个包含3列的Access表:
个人ID,代码,日期
PersonID在不同的日期可以有不同的代码,我只想在最新的一天显示最新的代码。
完整表格:
我正在寻找的查询的结果:
我尝试将MAX条件添加到数据列,但似乎不起作用:
MAX([Date])
答案 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