我有一个字段“ ID”,它具有重复值。 (在示例中; A21,B42和C14)。表格中我的其他两个字段是“日期”和“度量”。我想创建一个查询,该查询将调用具有匹配ID的先前日期并显示该先前行的结果。我的最终目标是在查询中具有一个字段,该字段将查找ID的当前度量值与前一个日期的度量值之间的变化。
我已附上一张我所拥有的桌子的图像以及我想要查询显示的图像。
答案 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_);