Wie berechne ich eine laufende Summe in SQL ohne Verwendung eines Cursors?
Der Kürze halber lasse ich alle Cursor-Einstellungen und das SELECT aus der temporären Tabelle weg. Grundsätzlich berechnet dieser Code einen laufenden Saldo für alle Transaktionen pro Transaktion.
WHILE @@fetch_status = 0
BEGIN
set @balance = @balance+@amount
insert into @tblArTran values ( --from artran table
@artranid, @trandate, @type,
@checkNumber, @refNumber,@custid,
@amount, @taxAmount, @balance, @postedflag, @modifieddate )
FETCH NEXT FROM artranCursor into
@artranid, @trandate, @type, @checkNumber, @refNumber,
@amount, @taxAmount,@postedFlag,@custid, @modifieddate
END
Inspiriert von diesem Code aus einer Antwort auf eine andere Frage,
SELECT @nvcConcatenated = @nvcConcatenated + C.CompanyName + ', '
FROM tblCompany C
WHERE C.CompanyID IN (1,2,3)
Ich habe mich gefragt, ob SQL in der Lage ist, Zahlen auf die gleiche Weise zu summieren, wie es Strings zusammenfasst, wenn Sie meine Bedeutung verstehen. Das heißt, Sie erstellen eine "laufende Bilanz" pro Zeile, ohne einen Cursor zu verwenden.
Ist es möglich?