Bạn có thể muốn xem bản cập nhật cho giải pháp biến cục bộ tại đây:http://geekswithblogs.net/Rhames/archive/2008/10/28/calculating-running-totals-in-sql-server-2005--- the-tối ưu.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
Tốt hơn tất cả các phương pháp khác, nhưng có một số nghi ngờ về thứ tự hàng được đảm bảo. Có vẻ như hoạt động tốt khi bảng tạm thời được lập chỉ mục ..
- Truy vấn phụ lồng nhau 9300 mili giây
- Tự tham gia 6100 mili giây
- Con trỏ 400 mili giây
- Cập nhật lên biến cục bộ 140 mili giây