在Access中选择最近日期的记录

时间:2017-10-05 09:01:27

标签: sql ms-access

我有一张Access表。

ID  Field1  Field2  Date
1   un_1    x       201701
2   un_2    y       201704
3   un_1    z       201702
4   un_3    a       201703
5   un_2    b       201709

我想采用此表的唯一(对于Field1)记录,其中Date是最新的。

我试过了:

SELECT ID, Field1, Field2, Date
FROM MYTABLE
WHERE Date=SELECT(MAX(MYTABLE.Date) FROM MYTABLE WHERE ID=MYTABLE.ID)
GROUP BY Field1;

但它没有用。

结果我希望:

un_1    z       201702
un_2    b       201709
un_3    a       201703

1 个答案:

答案 0 :(得分:0)

你的语法错了。你需要将括号放在子查询周围,就像这样,你需要为你的表添加一个同义词,因为你两次使用同一个表:

SELECT ID, Field1, Field2, Date
FROM MYTABLE i
WHERE MYTABLE.[Date]=(SELECT MAX(t.[Date]) FROM MYTABLE t WHERE t.ID=i.ID)
ORDER BY Field1;