2017-07-20 9 views
0

ohne Cursor Meine gewünschte Ausgabe Gibt esdiese Ausgabe generieren, ohne

item |Transaction Type| Qty_IN | Qty Out | End Bal 
------|----------------|--------|---------|------- 
item1| Beg. Balance | 0 | 0 | 15 
item1| Received Item | 5 | 0 | 20 
item1| Transfer Item | 0 | 2 | 18 
item1| Transfer Item | 0 | 3 | 15 

eine andere Art und Weise meine gewünschte Ausgabe zu bekommen Dies ist meine Tabellenstruktur mit Cursor

item |Transaction Type| Qty_IN | Qty Out |Transaction Sequence 
------|----------------|--------|----------------------- 
item1| Beg. Balance | 15 | 0 | 1 
item1| Received Item | 5 | 0 | 2 
item1| Transfer Item | 0 | 2 | 3 
item1| Transfer Item | 0 | 3 | 4 

?

+0

Mögliches Duplikat [Anfahrt kumulative Summe] (https://stackoverflow.com/questions/2120544/how-to-get-cumulative-sum) – j4rey89

+0

Ich denke die letzten beiden Zeilen deines * End Bal * deines ** gewünschten Outputs ** sollten eigentlich sein sei '18' und' 15'. – j4rey89

Antwort

1

Ein Standard-Weg ein laufendes Gleichgewicht zu erhalten, ist eine korrelierte Unterabfrage in der select-Anweisung zu verwenden, die die laufende Summe der Differenz zwischen dem in und aus Mengen berechnet:

SELECT *, 
    (SELECT SUM(t2.Qty_IN - t2.Qty_OUT) FROM yourTable t2 
    WHERE t2.[Transaction Sequence] <= t1.[Transaction Sequence]) [End Bal] 
FROM yourTable t1 
+0

Vielen Dank! –