【问题标题】:Access VBA SQL: Find Max Date and retrieve row ID访问 VBA SQL:查找最大日期并检索行 ID
【发布时间】:2020-07-13 20:16:02
【问题描述】:

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

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

我需要通过最大日期值检索每个InvenotryIDTrackID,以便我可以获取每个库存项目的最新状态。

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,我无法创建可以体现该想法的查询。

【问题讨论】:

    标签: sql ms-access vba maxdate


    【解决方案1】:

    也许:

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

    【讨论】:

    • 哇,Remou,非常感谢。复杂,简短,并且像魅力一样工作:)
    猜你喜欢
    • 2019-03-21
    • 1970-01-01
    • 1970-01-01
    • 2021-12-12
    • 1970-01-01
    • 2015-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多