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?

Antworten auf die Frage(11)

Ihre Antwort auf die Frage