我有一张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
答案 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;