creo que tienes una consulta demasiado complicada para lo que quieres lograr, una diferencia como la que planteas se puede hacer de una forma mas sencilla:
Código SQL:
Ver originalCREATE TABLE #temp
(
[año] INT,
mes INT,
ingresos INT
)
INSERT INTO #temp VALUES (2015, 3 ,1500)
INSERT INTO #temp VALUES (2015, 2 ,1400 )
INSERT INTO #temp VALUES (2015, 1 ,1330 )
INSERT INTO #temp VALUES (2014, 12, 1630)
SELECT *, IDENTITY(INT,1,1) AS rn INTO #temp2 FROM #temp AS t1
SELECT t1.*, (isnull(t1.ingresos-t2.ingresos,0)) AS diferencia FROM #temp2 AS t1
LEFT JOIN #temp2 AS t2 ON (t1.rn+1=t2.rn)
Y ahi tienes el resultado:
año mes ingresos diferencia
2015 3 1500 100
2015 2 1400 70
2015 1 1330 -300
2014 12 1630 0
saludos!