如何从SELECT语句的上一个结果行中获取值 / C0 K. B) A, B# R; S如果我们有一个名为cardevent的表,并且有[ID(int),Value(Money)]行,并且其中有一些行,例如 ( N8 v/ T' e$ p# k) A" Y8 g/ ?3 LID --Value0 o9 K$ T$ Q; ~- f( R# B
1------70 7 a# j& r7 Q: F7 _1 ]1------901 O. V% k3 H0 S. m' }
2------1000 j- C. @. q3 t3 A; h) R6 V1 A7 j
2------150/ x o F3 S7 x4 u/ t
2------300 . q n' J5 g1 h* u4 `8 T& r, a1 I
3------150 : Y! h+ {2 T1 j, U6 {3------200 . u/ g2 w. P8 v. A3-----250 % D# F1 Z. i0 ?3 u D# z4 H3-----280/ W( O: I0 @/ e+ v! L
很快… ' \% o; Y- e& C如何进行一个查询,以获取每个行的ID,值和前一个行值,数据在其中显示如下 8 \7 ]2 p, ?; w9 r# [5 AID --- Value ---Prev_Value0 q. _# v5 l5 z' V
1 ----- 70 ---------- 0 ' F0 f, E# `; }1 ----- 90 ---------- 70 & ~9 K5 K" \% T4 X- ?. h$ ? C2 ----- 100 -------- 90 . H8 T% K" Z9 Y. E, ^8 M5 N# O2 ------150 -------- 100 4 x$ I. U( I( m+ @, j! k, r' X2 ------300 -------- 150 ( t3 [9 K L5 H3 ----- 150 -------- 300 - e: M% E, [& o* a7 A" _
3 ----- 200 -------- 150 ) k5 D f4 J; N$ Y# F* |3 ---- 250 -------- 200 * L p3 B h( v
3 ---- 280 -------- 250 5 |3 R2 z3 o2 J很快。. z% r& A. f, L" u4 v$ S5 y- b: ?
那么,有人可以帮助我获得针对此类问题的最佳解决方案吗? 9 H7 ^& y1 |. `需要查询帮助/ C& v" {/ ~- q5 }0 X% o
# B" c/ P* ?4 n0 t5 w# x解决方案:) t6 W0 n1 R% Y% B
' q% W% E+ Q; \2 K* i
4 Z }7 G A3 \' Y. R! h* x
% @/ c; `; ^ c' c* M 您将不得不将表与自身连接,我不确定这是否是100%合法的SQL,但是目前我没有SQL-Server可以尝试此操作,但是请尝试以下操作: - n L6 R, z$ B. o) z3 M5 Wselect (ID, Value) from table as table1 join . \ W0 X7 y, k+ M, N( Q6 finner join table as table2/ q2 P) r8 D6 L. |* W( l/ x4 f0 c- V
on table1.ID = (table2.ID -1)