Yes, in your front-end application.Or try this. Took less than a second to run the staging part on my laptop.-- Prepare sample dataUSE TempDBSET NOCOUNT ONCREATE TABLE dbo.Payments ( Account VARCHAR(5), AmountPaid MONEY, DatePaid DATETIME, RunningTotal MONEY )DECLARE @Loop INTSET @Loop = 1WHILE @Loop <= 500000 BEGIN INSERT dbo.Payments SELECT ABS(CHECKSUM(NEWID())) % 10000, ABS(CHECKSUM(NEWID())) % 10000, ABS(CHECKSUM(NEWID())) % 10000, 0 SET @Loop = @Loop + 1 ENDCREATE CLUSTERED INDEX IX_Payments ON dbo.Payments (Account, DatePaid)-- Stage the dataDECLARE @Total MONEY, @Account VARCHAR(5)SELECT @Total = 0, @Account = ''UPDATE dbo.PaymentsSET @Total = RunningTotal = CASE WHEN @Account = Account THEN @Total + AmountPaid ELSE AmountPaid END, @Account = Account-- Show the expected outputSELECT Account, AmountPaid, DatePaid, RunningTotalFROM Payments ORDER BY Account, DatePaid-- Clean upDROP TABLE dbo.Payments
Peter LarssonHelsingborg, Sweden