在MS Access中找到具有多个记录的ID的最新日期

时间:2019-10-21 21:39:29

标签: database ms-access

我有一个字段“ ID”,它具有重复值。 (在示例中; A21,B42和C14)。表格中我的其他两个字段是“日期”和“度量”。我想创建一个查询,该查询将调用具有匹配ID的先前日期并显示该先前行的结果。我的最终目标是在查询中具有一个字段,该字段将查找ID的当前度量值与前一个日期的度量值之间的变化。

我已附上一张我所拥有的桌子的图像以及我想要查询显示的图像。

table and desired query

2 个答案:

答案 0 :(得分:0)

遗憾的是,MS Access不支持lag()。但是,这可以通过自联接和带有相关子查询的not exists条件来模拟:

select 
    t.id,
    tprev.date as previous_date,
    tprev.measureement as previous_measurement
from Table1 as t
left join Table1 as tprev
    on (tprev.id = t.id)
    and (tprev.dat < t.date)
    and (not exists (
        select 1
        from Table1 as t1
        where 
            t1 = t.id
            and t1.dat < t.date
            and t1.dat > tprev.date
    ))

答案 1 :(得分:0)

这是使所描述的查询功能的方法:

SELECT t.NUM, t.ID, tprev.Date_ AS previous_date, tprev.Measurement AS previous_measurement
FROM Table1 AS t LEFT JOIN Table1 AS tprev ON (tprev.Date_ < t.Date_) AND (tprev.id = t.id)
WHERE not exists 
        (select 1
        from Table1 AS t1
        where 
            t1.ID = t.ID
            and t1.Date_ < t.Date_
            and t1.Date_ > tprev.Date_);