Ho una tabella come questa:Come ottenere la differenza tra due righe per un campo colonna?
valori rowIntrowInt Value
2 23
3 45
17 10
9 0
....
La colonna sono interi ma non in sequenza con la stessa increament. Posso utilizzare il seguente SQL per elencare i valori per rowInt:
valori della listaSELECT * FROM myTable ORDER BY rowInt;
Questo sarà da rowInt. Come si può ottenere ottenere la differenza di valore tra i due file con il risultato come questo:
rowInt Value Diff
2 23 22 --45-23
3 45 -35 --10-45
9 0 -45 --0-45
17 10 10 -- 10-0
....
Il tavolo è in SQL 2005 (Miscrosoft)
È inteso che hai 10-45 nella seconda fila? Da dove prendi un 10? – Quassnoi
alcuni calc non sono coerenti ... row2 (45-23) è row3-row2, ma row9 (0-45) è row9-row3, non dovrebbe essere (10-0) che è row17-row9? – MatBailie
Sembra che si voglia contare la differenza tra i valori adiacenti nel set di righe originale (2, 3, 17, 9). Quindi dovrò chiederti: qual è la colonna su cui è ordinato il set di righe ORIGINALE? Ricorda che non esiste alcuna cosa come "ordinamento predefinito" in SQL. – Quassnoi