如果我们有一个名为FollowUp的表并且有行[ID(int),Value(Money)]
例如,我们在其中有一些行
ID – 值
1 —— 70
2 —— 100
3 —— 150
8 —— 200
20 —– 250
45 —– 280
并且我们想要创建一个SQL查询,以获取每个行ID,值和前面的行值,其中数据显示如下
ID —值— Prev_Value
1 —– 70 ———- 0
2 —– 100 ——– 70
3 —– 150 ——– 100
8 —– 200 ——– 150
20 —- 250 ——– 200
45 —- 280 ——– 250
例如,我们在其中有一些行
ID – 值
1 —— 70
2 —— 100
3 —— 150
8 —— 200
20 —– 250
45 —– 280
并且我们想要创建一个SQL查询,以获取每个行ID,值和前面的行值,其中数据显示如下
ID —值— Prev_Value
1 —– 70 ———- 0
2 —– 100 ——– 70
3 —– 150 ——– 100
8 —– 200 ——– 150
20 —- 250 ——– 200
45 —- 280 ——– 250
我做了以下查询,但我认为它在大量数据中的表现非常糟糕
SELECT FollowUp.ID,FollowUp.Value,( SELECT F1.Value FROM FollowUp as F1 where F1.ID = ( SELECT Max(F2.ID) FROM FollowUp as F2 where F2.ID < FollowUp.ID ) ) AS Prev_Value FROM FollowUp