Excellent response Brett.What you're looking for is a slightly modified version of a "running total" and can be achieved like this:DECLARE @table as table (ID int, PurchaseValue int)INSERT INTO @table Values(1,2)INSERT INTO @table Values(2,4)INSERT INTO @table Values(3,6)INSERT INTO @table Values(4,8)INSERT INTO @table Values(5,10)INSERT INTO @table Values(6,12)INSERT INTO @table Values(7,14);WITH cte (ID, PurchaseValue, RowNumber) AS (SELECT ID, PurchaseValue, ROW_NUMBER() OVER (ORDER BY ID) FROM @table T1)SELECT ID, PurchaseValue, RunningTotal = CASE WHEN RowNumber = 1 THEN PurchaseValue ELSE PurchaseValue * (SELECT PurchaseValue FROM cte AS cte2 WHERE cte2.RowNumber = cte1.Rownumber - 1) ENDFROM cte AS cte1
- LumbagoMy blog (yes, I have a blog now! just not that much content yet) -> www.thefirstsql.com