需求:交易表含存款(正)、取款(負),按時間序計算每筆後的餘額。
CREATE TABLE BankAccount (
TransactionID INT IDENTITY PRIMARY KEY,
TransactionDateTime DATETIME DEFAULT GETDATE(),
Amount MONEY NOT NULL DEFAULT 0,
TransactionType CHAR(1) NOT NULL, -- 'D'/'C'
AccountNumber VARCHAR(50) NULL
);
SELECT transactionid, transactiondatetime, amount,
(SELECT SUM(amount) FROM dbo.BankAccount AS D1
WHERE D1.transactiondatetime <= D0.transactiondatetime) AS balance
FROM dbo.BankAccount AS D0;
結果:每行顯示截至該筆交易的累計餘額。
擴充:多帳戶只需加 AccountNumber 過濾;存貨系統同理 (期初量 - 累計出貨)。