Columna Acumulados

17/09/2004 - 18:24 por Jose Soutullo | Informe spam
Saludos a todos.

Quisiera en un select sacar una columna de acumulados, me explico, por
ejemplo como de una cuenta bancaria a partir del Debe y el Haber sacar un
columna saldo en el propio comando select.

Se puede ?
 

Leer las respuestas

#1 Javier Loria
17/09/2004 - 20:01 | Informe spam
Hola:
En SQL los conjuntos por su naturaleza no son ordenados, lo que exige
ciertas tecnicas "especiales" para generar este tipo de balances. Esto
consiste en sumar todos los valores que cumplan la condicion de menor que la
fila actual.
Asumamos de forma sencilla un Id (numero consecutivo y un Monto que es
el movimiento. Para acumular uno puede hacer
==SELECT M1.Id
, M1.Monto
, SUM(M2.Monto) AS Acumulado
FROM Movimientos AS M1
JOIN Movimientos AS M2
ON M1.Id>=M2.Id
GROUP BY M1.Id, M1.Monto
== Usa varias tecnicas:
a) Hay un JOIN de la Tabla con ella misma, por eso se usan los Alias M1
y M2.
b) M1 representa el "Movimiento Actual"
c) M2 repesentas todos los movimientos anteriores al movimiento actual.
d) La condicion es > Si tienes problemas adaptando esta tecnica a tus tablas, puedes postear
el codigo de creacion de la tabla, algunos datos de ejemplo y el resultado
deseado para poderte ayudar mas.
Espero te funcione,


Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda

"Jose Soutullo" wrote in message
news:
Saludos a todos.

Quisiera en un select sacar una columna de acumulados, me explico, por
ejemplo como de una cuenta bancaria a partir del Debe y el Haber sacar un
columna saldo en el propio comando select.

Se puede ?


Preguntas similares