如何從SELECT語句的前一個結果行中獲取值如何選擇上一行值?
如果我們有一個名爲cardevent的表並且具有行[ID(int),Value(Money)]並且我們有一些行,例如
ID --Value
1------70
1------90
2------100
2------150
2------300
3------150
3------200
3-----250
3-----280
等等...
如何使一個查詢得到的每一行ID,價值與該數據出現之前的行值如下
ID --- Value ---Prev_Value
1 ----- 70 ---------- 0
1 ----- 90 ---------- 70
2 ----- 100 -------- 90
2 ------150 -------- 100
2 ------300 -------- 150
3 ----- 150 -------- 300
3 ----- 200 -------- 150
3 ---- 250 -------- 200
3 ---- 280 -------- 250
等。
我提出以下查詢,但它是如此糟糕的業績數據
SELECT cardevent.ID, cardevent.Value,
(SELECT F1.Value
FROM cardevent as F1
where F1.ID = (SELECT Max(F2.ID)
FROM cardevent as F2
WHERE F2.ID < cardevent.ID)
) AS Prev_Value
FROM cardevent
的鉅額因此,誰能幫助我獲得了這樣的問題的最佳解決方案?
爲什麼你標記爲2級不同的RDBMS? – 2009-07-01 07:12:16
複製到這個(其他用戶,其他表名稱):http://stackoverflow.com/questions/742226/how-to-get-a-value-from-previous-result-row-of-a-select-聲明 – MicSim 2009-07-01 07:17:42
必須是一個作業問題.... – 2009-07-01 07:23:47