Anda mungkin ingin melihat pembaruan untuk solusi variabel lokal di sini:http://geekswithblogs.net/Rhames/archive/2008/10/28/calculating-running-totals-in-sql-server-2005--- the-optimal.aspx
DECLARE @SalesTbl TABLE (DayCount smallint, Sales money, RunningTotal money)
DECLARE @RunningTotal money
SET @RunningTotal = 0
INSERT INTO @SalesTbl
SELECT DayCount, Sales, null
FROM Sales
ORDER BY DayCount
UPDATE @SalesTbl
SET @RunningTotal = RunningTotal = @RunningTotal + Sales
FROM @SalesTbl
SELECT * FROM @SalesTbl
Mengungguli semua metode lain, tetapi memiliki beberapa keraguan tentang urutan baris yang dijamin. Tampaknya berfungsi dengan baik ketika tabel temp diindeks..
- Sub-kueri bertingkat 9300 md
- Gabung mandiri 6100 md
- Kursor 400 md
- Perbarui ke variabel lokal 140 md