在Access

时间:2017-08-11 11:20:03

标签: sql ms-access

我正在开发一个MS-Access表,并希望有一个查询来查询某个id的最后一个条目的所有信息。

我的表格(DEPOSIT_MOVEMENTS)如下:

MOV_CODE | WORK | DEPOSIT_CODE | TYPE | DATE | DESTINATION

我希望为每个DEPOSIT_CODE获取最新的寄存器(日期),并获取* MOV_CODE以便我可以获得该项目的DESTINATION。

DEPOSIT_CODE在不同的日期可能有很多MOV_CODE。

我尝试过在stackoveflow上发布的不同选项,但我没有让其中任何一个正常工作。

现在我正在尝试使用GROUP BY,但无法使其正常工作。

SELECT t1.[DEPOSIT_CODE], MAX(t1.[DATE]), t1.[MOV_CODE]
FROM [DEPOSIT_MOVEMENTS] AS t1 
GROUP BY t1.[DEPOSIT_CODE];

欢迎任何帮助或指导。

亲切的问候,

1 个答案:

答案 0 :(得分:0)

这是一种方法:

SELECT dm.*
FROM [DEPOSIT_MOVEMENTS] AS dm
WHERE dm.DATE = (SELECT MAX(dm2.DATE)
                 FROM [DEPOSIT_MOVEMENTS] AS dm2
                 WHERE dm2.DEPOSIT_CODE = dm.DEPOSIT_CODE
                );