Ver Mensaje Individual
  #4 (permalink)  
Antiguo 22/07/2015, 12:50
Avatar de Libras
Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Fallo de funcion DATEADD

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 original
  1. CREATE TABLE #temp
  2. (
  3. [año] INT,
  4. mes INT,
  5. ingresos INT
  6. )
  7.  
  8.  
  9. INSERT INTO #temp VALUES (2015, 3 ,1500)
  10. INSERT INTO #temp VALUES (2015, 2 ,1400 )
  11. INSERT INTO #temp VALUES (2015, 1 ,1330 )
  12. INSERT INTO #temp VALUES (2014, 12, 1630)
  13.  
  14. SELECT *, IDENTITY(INT,1,1) AS rn INTO #temp2 FROM #temp AS t1
  15.  
  16. SELECT t1.*, (isnull(t1.ingresos-t2.ingresos,0)) AS diferencia FROM #temp2 AS t1
  17. 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!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me