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

时间:2014-03-09 13:43:52

标签: sql access-vba maxdate

我正在使用带有2个表的链接MS-SQL数据库的MS-Access 2007。

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

我需要按最大日期值检索每个TrackID的{​​{1}},这样我就可以获得每个广告资源项的最新状态。

InvenotryID

跟踪表示例:

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 不一定是字段的最大值。

由于我缺乏SQL,我无法创建可以表明这种想法的查询。

1 个答案:

答案 0 :(得分:0)

也许:

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是表格的名称。