Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Resta registros consecutivos

Estas en el tema de Resta registros consecutivos en el foro de SQL Server en Foros del Web. Buenos días: Tengo una tabla con una serie de registros y lo que quiero hacer es Restarle a cada uno de los cambpos el valor ...
  #1 (permalink)  
Antiguo 12/05/2012, 05:46
 
Fecha de Ingreso: julio-2011
Mensajes: 3
Antigüedad: 12 años, 9 meses
Puntos: 0
Resta registros consecutivos

Buenos días:

Tengo una tabla con una serie de registros y lo que quiero hacer es Restarle a cada uno de los cambpos el valor que tiene el registro justamente anterior al él

Campo1-Campo1 (Registro anterior)
Campo2-Campo2 (Registro anterior)

...


CampoN-CampoN (Registro anterior)


La siguiente consulta está muy bien para hacerlo con un solo campo, pero si hago esto para cada uno de los campos me saldría una consulta grandísima.

Código:
select id, 
   -t2.Campo1+ (select t1.Campo1 from Tabla t1 where id=t2.id+1) as Campo1 
from Tabla t2
Con cada uno de los campo sería algo así

Código:
select id, 
   -t2.Campo1+ (select Campo1 from Tabla t1 where id=t2.id+1) as Campo1,
   -t2.Campo2+ (select Campo2 from Tabla t1 where id=t2.id+1) as Campo2,
  .......
   -t2.CampoN+ (select CampoN from Tabla t1 where id=t2.id+1) as CampoN

from Tabla t2
Como veis esto podría ser eterno cuando hay muchos registros

¿Hay alguien que pueda ayudarme?

Muchas gracias
  #2 (permalink)  
Antiguo 13/05/2012, 23:47
Avatar de ramirezmario7  
Fecha de Ingreso: febrero-2008
Ubicación: Medellín
Mensajes: 336
Antigüedad: 16 años, 2 meses
Puntos: 56
Respuesta: Resta registros consecutivos

Hola.
Si tienes una columna numerica que te lleve el id te podria servir algo asi.

select
t1.campo1-isnull(t2.campo1,0)
from tabla t1, tabla t2
where (t1.id)-1 = t2.id

seria mas o menos asi, si quieres detalla bien los tipos da campo que tienes a ver como se puede hacer
__________________
Mario Ramírez
Desarrollador .NET MCTS
https://www.mcpvirtualbusinesscard.c...nteractivecard

Etiquetas: consecutivos, registro, registros, resta, select, tabla, campos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:07.