同一个表中两个记录之间的字段值的差异

时间:2014-03-04 07:20:41

标签: ms-access ms-access-2010

我有table1,它有抄表区。我想计算抄表记录1和抄表记录2之间的差异。

2 个答案:

答案 0 :(得分:0)

假设您在ID中有一个连续的table1字段,以下查询会为您提供所需的结果:

SELECT T1.ID, T1.MeterReading, T2.MeterReading, [T2].[MeterReading]-[T1].[MeterReading] AS Difference
FROM tbl AS T1, tbl AS T2
WHERE (((T1.ID)=[T2].[ID]-1));

但是,如果ID属于autonumber类型,则您可能会错过一些数字并失去连续性,因此我建议使用number类型作为ID并使用一些代码来确保连续性。

答案 1 :(得分:0)

我假设了表和字段的名称,所以很明显你应该更改它们以适合你的模式。

Dim rs AS new ADODB.Recordset
Dim PrevReading AS Long

rs.CursorLocation = adUseClient
rs.Open "SELECT * FROM tblReadings ORDER BY ReadingDate",CurrentProject.Connection,adOpenKeyset, adLockOptimistic
Do While Not rs.Eof
   rs.Field("Difference")=rs.Field("MeterReading") - PrevReading
   PrevReading = rs.Fields("MeterReading")
   rs.MoveNext
Loop
rs.Close