访问VBA SQL:查找最大日期并检索行ID

访问VBA SQL:查找最大日期并检索行ID,sql,ms-access,vba,maxdate,Sql,Ms Access,Vba,Maxdate,我使用的是MS Access 2007和链接的MS-SQL数据库以及两个表 一个表是库存详细信息,另一个表是库存跟踪,跟踪每个库存在特定日期的状态(按ID) 我需要根据最大日期值检索每个InvenotryID的TrackID,以便获得每个库存项目的最新状态 Inventory table: ID, Details, etc. Track table: ID, Inventory (ID), TDate, Status, Branch. 轨迹表示例: ID | Inv. | TDate

我使用的是MS Access 2007和链接的MS-SQL数据库以及两个表

一个表是库存详细信息,另一个表是库存跟踪,跟踪每个库存在特定日期的状态(按ID)

我需要根据最大日期值检索每个
InvenotryID
TrackID
,以便获得每个库存项目的最新状态

Inventory table: ID, Details, etc.

Track table: ID, Inventory (ID), TDate, Status, Branch.
轨迹表示例:

   ID | Inv. | TDate | Status   
   332|    4 | 02/03 | free   
   342|    6 | 02/12 | working   
   346|    4 | 02/09 | working   
   347|    7 | 02/11 | repairs   
   349|    5 | 02/05 | repairs   
   352|    6 | 02/13 | free   
   355|    5 | 01/28 | working   
   356|    7 | 02/14 | free
查询应获取:

   TrackID | Inv. | TDate | Status   
   346     | 4    | 02/09 | working   
   355     | 6    | 02/13 | free   
   356     | 7    | 02/14 | free   
   349     | 5    | 02/05 | repairs
注意:
TrackID
由于非线性状态注册,不一定是字段的最大值

由于缺乏SQL,我无法创建一个能够体现这一想法的查询。

也许:

SELECT test.ID, test.Inv, test.TDate, test.Status
FROM test INNER JOIN 
   (SELECT test.Inv, Max(test.TDate) AS MaxOfTDate
    FROM test
    GROUP BY test.Inv)  AS q 
ON (test.TDate = q.MaxOfTDate) AND (test.Inv = q.Inv)
GROUP BY test.ID, test.Inv, test.TDate, test.Status;

其中test是您的表名。

wow,Remou,thanx很多。复杂、短小,工作起来很有魅力:)