Попробуйте:
DECLARE @tab1 TABLE(month INT, year INT,new INT, churn INT)
INSERT INTO @tab1 VALUES
(2,2012,114,0 )
,(3,2012,143,20 )
,(4,2012,221,43 )
,(5,2012,197,74 )
,(6,2012,234,122)
,(7,2012,276,138)
,(8,2012,278,200)
SELECT [T1].[month],[T1].[Year]
,ISNULL(SUM([T2].new-[T2].churn) OVER(ORDER BY [T1].[Year], [T1].[month]),0)Start
,[T1].new, [T1].churn, [T1].new-[T1].churn AS net
,([T1].new-[T1].churn)+ISNULL(SUM([T2].new-[T2].churn) OVER(ORDER BY [T1].[Year], [T1].[month]),0) [End]
From @tab1 T1
LEFT JOIN @tab1 T2 ON T1.month = t2.month+1
Вывод:
month Year Start new churn net End
2 2012 0 114 0 114 114
3 2012 114 143 20 123 237
4 2012 237 221 43 178 415
5 2012 415 197 74 123 538
6 2012 538 234 122 112 650
7 2012 650 276 138 138 788
8 2012 788 278 200 78 866