如果我们有一个表称为随访和具有行[ID(INT),值(金钱)] ,我们有在它的一些行,例如
ID --Value
1 ------ 70
2 ------ 100
3 ------ 150
8 ------ 200
20 ----- 250
45 ----- 280
并且我们想让一个SQL查询得到每个行ID,Value和前面的行值,其中数据显示如下
ID ---值--- Prev_Value
1 ----- 70 ---------- 0
2 ----- 100 -------- 70
3 ----- 150 -------- 100
8 ----- 200 -------- 150
20 ---- 250 -------- 200
45 ---- 280 -------- 250
如何从SELECT语句的前一个结果行中获取值?
我提出以下查询,但我觉得它是如此糟糕的表现在大数据量的
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
那么,任何人都可以帮助我获得解决这个问题的最佳解决方案吗?
你会指定RDBMS吗? – Sung 2009-04-12 19:34:56
对不起,我忘了指定我的RDBMS 我使用Access 2007 – 2009-04-13 08:38:11
http://stackoverflow.com/questions/1062406 很多的这些问题... – colithium 2009-07-01 08:03:55