Ver Mensaje Individual
  #2 (permalink)  
Antiguo 21/06/2013, 15:34
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: Actualizar Campo con Row Anterior

Código SQL:
Ver original
  1. CREATE TABLE #temp
  2. (
  3. dato1 INT,
  4. dato2 INT,
  5. dato3 INT
  6. )
  7.  
  8.  
  9. INSERT INTO #temp VALUES (323,  308,    631)
  10. INSERT INTO #temp VALUES (0,    0,  0)
  11. INSERT INTO #temp VALUES (0 ,1, 0)
  12. INSERT INTO #temp VALUES (0 ,9, 0)
  13. INSERT INTO #temp VALUES (0 ,1, 0)
  14. INSERT INTO #temp VALUES (0 ,3, 0)
  15.  
  16. DECLARE @x INT
  17. DECLARE @anterior INT
  18. DECLARE @NEXT INT
  19. DECLARE @valor INT
  20.  
  21. CREATE TABLE #temp3
  22. (
  23. dato1 INT,
  24. dato2 INT,
  25. dato3 INT,
  26. rn INT
  27. )
  28.  
  29. SET @x=1
  30.  
  31. SELECT *,IDENTITY(INT,1,1) rn INTO #temp2 FROM #temp
  32.  
  33. while @x<=(SELECT COUNT(*) FROM #temp2)
  34. BEGIN
  35.     IF @x=1
  36.     BEGIN
  37.      INSERT INTO #temp3
  38.      SELECT * FROM #temp2 WHERE rn=@x
  39.     END
  40.     ELSE
  41.     BEGIN
  42.       SELECT @anterior=dato3 FROM #temp3 WHERE rn=@x-1
  43.       SELECT @valor=dato2 FROM #temp2 WHERE rn=@x    
  44.       SET @NEXT=@anterior+@valor
  45.       INSERT INTO #temp3 VALUES (@anterior,@valor,@NEXT,@x)
  46.     END
  47. SET @x=@x+1  
  48. END
  49.  
  50. SELECT * FROM #temp3
  51. DROP TABLE #temp2
  52. DROP TABLE #temp3

esto te sirve??
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me