No prob, απλά έχε υπόψην σου το παρακάτω:
DECLARE @SalesTotals TABLE
(
RowId INTEGER,
Dated DATETIME,
Sales INTEGER
)
INSERT INTO @SalesTotals
SELECT row_number() OVER ( ORDER BY Dated ) rowId,
Dated,
Sales
FROM SalesByMonth
DECLARE @total integer
SET @total = 0
UPDATE st
SET @total = st.Sales = @total + st.Sales
FROM @SalesTotals st
SELECT *
FROM @SalesTotals
Αν αρχίσει να μεγαλώνει ο πίνακας, τότε θα δεις ικανή διαφορά με το παραπάνω. Αυτό συμβαίνει γιατί ο τρόπος με το subquery θα κάνει περίπου N*(N+1)/2 logical reads ενώ ο παραπάνω κώδικας θα κάνει περίπου N καθώς το UPDATE συμβαίνει σε fetched data, δηλαδή στη μνήμη, χωρίς να έχει μεγάλο κόστος.
Vir prudens non contra ventum mingit