Sql 计算从一行到下一行的列值差异

Sql 计算从一行到下一行的列值差异,sql,ms-access,Sql,Ms Access,我使用Access DB跟踪数百个帐户上的公用设施使用情况。这些账户中的电表只有每月的消耗值。我需要取这个月的消费值,然后从上个月的值中减去它。以获取本月的消费量。我知道在SQLServer中,有一个lead/lag函数可以计算这些差异。access中是否有类似的功能?或者有没有一种简单的方法将一行中的值从上面的值中减去 前 我不太了解你的一些结果,但我认为你想要的是: SELECT Meters.MeterDate, Meters.MeterReading, (SELEC

我使用Access DB跟踪数百个帐户上的公用设施使用情况。这些账户中的电表只有每月的消耗值。我需要取这个月的消费值,然后从上个月的值中减去它。以获取本月的消费量。我知道在SQLServer中,有一个lead/lag函数可以计算这些差异。access中是否有类似的功能?或者有没有一种简单的方法将一行中的值从上面的值中减去


我不太了解你的一些结果,但我认为你想要的是:

SELECT Meters.MeterDate, 
     Meters.MeterReading, 
    (SELECT TOP 1 MeterReading 
     FROM Meters m WHERE m.MeterDate <Meters.MeterDate 
     ORDER BY MeterDate DESC) AS LastReading, 
     [MeterReading]-Nz([LastReading],0) AS MonthResult
FROM Meters
ORDER BY Meters.MeterReading;
SELECT Meters.MeterDate, 
     Meters.MeterReading, 
    (SELECT TOP 1 MeterReading 
     FROM Meters m WHERE m.MeterDate <Meters.MeterDate 
     ORDER BY MeterDate DESC) AS LastReading, 
     [MeterReading]-Nz([LastReading],0) AS MonthResult
FROM Meters
ORDER BY Meters.MeterReading;