Consulta de Saldos

13/02/2008 - 02:33 por Javier Choque | Informe spam
Hola SAludos

Amigos tengo los siguientes datos, uso Sql 2000

cod nombre cargos abonos
01 juan 100 50
01 juan 20
02 carlos 200
02 carlos 50
02 carlos 10
02 carlos 20

Hay un query para obtener lo sibuiente
cod nombre cargos abonos saldo
01 juan 100 50 50
01 juan 20 30
02 carlos 200 200
02 carlos 50 150
02 carlos 10 140
02 carlos 20 120

Gracias

Javier Choque
 

Leer las respuestas

#1 Carlos M. Calvelo
13/02/2008 - 11:58 | Informe spam
Hola Javier,

On 13 feb, 02:33, "Javier Choque" wrote:
Hola SAludos

Amigos tengo los siguientes  datos, uso Sql 2000

cod    nombre        cargos    abonos
01    juan                100        50
01    juan                               20
02    carlos            200
02    carlos                            50
02    carlos                            10
02    carlos                            20

Hay un query para obtener lo sibuiente
cod    nombre        cargos    abonos     saldo
01    juan                100        50           50
01    juan                               20          30
02    carlos            200                       200
02    carlos                            50         150
02    carlos                            10         140
02    carlos                            20         120




Pregunta:
Y te da igual que el resutado sea algo como:

cod nombre cargos abonos saldo
01 juan 20 -20
01 juan 100 50 30
02 carlos 200 200
02 carlos 20 180
02 carlos 50 130
02 carlos 10 120

o que por casuliadad sea algo como:

cod nombre cargos abonos saldo
01 juan 20 -20
01 juan 100 50 30
02 carlos 50 -50
02 carlos 10 -60
02 carlos 200 140
02 carlos 20 120

o cualquier otra serie de sumas dependiendo del
orden en que 'por casualidad' vengan los registros?

Dicho de otra forma: necesitas algún atributo que
combinado con 'cod' determine un orden para así
forzar siempre el mismo resultado.
Digamos que sí tienes ese atributo, llamemosle ID,
y que la combinacion {cod,ID} es única.
Entonces puedes hacer lo siguiente:

select
t1.cod, t1.ID, t1.nombre, t1.cargos, t1.abonos,
isnull(sum(t2.cargos),0) - isnull(sum(t2.abonos),0) as saldo
from
tutabla t1 inner join tutabla t2
on t1.cod=t2.cod and t1.ID >= t2.ID
group by
t1.cod, t1.ID, t1.nombre, t1.cargos, t1.abonos
order by
t1.cod,t1.ID

Además puedes buscar la palabra 'saldo' en este foro
y verás soluciones para todos los gustos.

Saludos,
Carlos

Preguntas similares