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

Cómo acumular un campo en una consulta tipo cta. cte.

Estas en el tema de Cómo acumular un campo en una consulta tipo cta. cte. en el foro de SQL Server en Foros del Web. Hola Me estoy iniciando en sql y necesito resolver la clásica consulta de una cuenta corriente. El resultado a obtener es una estructura como la ...
  #1 (permalink)  
Antiguo 04/08/2006, 15:38
 
Fecha de Ingreso: agosto-2006
Ubicación: Mendoza, Argentina
Mensajes: 5
Antigüedad: 17 años, 8 meses
Puntos: 0
Pregunta Cómo acumular un campo en una consulta tipo cta. cte.

Hola
Me estoy iniciando en sql y necesito resolver la clásica consulta de una cuenta corriente.
El resultado a obtener es una estructura como la siguiente:
Fecha - Comprobante - DEBE - HABER - SALDO
-/-/-- ------------ 100 ------ 100
-/-/-- ------------ ------ 30 70
-/-/-- ------------ ------ 20 50
-/-/-- ------------ ------ 50 0

SALDO es un campo de una tabla temporaria donde quiero ver la evolución del saldo para cada registro .
¿Con que instrucciones o funciones se logra obtener la consulta con el campo SALDO calculado?

Gracias por lo que puedan ayudarme
...y porsupuesto, a su servicio.

Última edición por charlyrag; 04/08/2006 a las 15:41 Razón: los valores numéricos del ejemplo se justificaron todos a la izauiqerda
  #2 (permalink)  
Antiguo 07/08/2006, 12:15
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
CREATE TABLE jeje(
fecha SmallDateTime,
...,
saldo AS debe - haber
)

De esa manera creas la tabla para que siempre tengas el dato del saldo calculado.

Si es en un select (sin tener el campo calculado en la tabla) basta con hacer

SELECT *, debe - haber AS saldo
FROM jeje
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #3 (permalink)  
Antiguo 07/08/2006, 15:33
 
Fecha de Ingreso: agosto-2006
Ubicación: Mendoza, Argentina
Mensajes: 5
Antigüedad: 17 años, 8 meses
Puntos: 0
En primer lugar, muchas gracias por tu respuesta.. pero lo que quiero no es una columna con el resultado de la diferencia debe - haber del registro...

lo que yo quiero es un campo acumulado .. osea:

1º registro : Saldo Inicial + DEBE - HABER = SALDO del registro1...
2º registro : SALDO del registro1... + DEBE - HABER = SALDO del registro2...
3º registro : SALDO del registro2... + DEBE - HABER = SALDO del registro3...

el query me tiene que dar el como resultado final

Saldo Inicial: 1000

------------DEBE__ HABER___SALDO
Registro 2 :__100_______0____1100
Registro 3 :____0_____200____1200
Registro 4 :__300_______0____1500

me expliko??
  #4 (permalink)  
Antiguo 09/08/2006, 11:23
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
Ahh, entonces tendrás que utilizar un cursor que vaya llevando la suma registro por registro (a nivel de "select"). De esa manera vas llevando el acumulado.

El código no lo posteo (que haragán soy) pero no es complicado. Basta que leas en los archivos de ayuda como crear el cursor.

Te recomiendo que lo metas en un stored procedure y lo mandes llamar desde tu aplicación.
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
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 17:50.