Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-09-2007
egarc egarc is offline
Miembro
 
Registrado: jul 2006
Posts: 60
Poder: 18
egarc Va por buen camino
Talking Como hacer una columna Acumulada en SQL

Buenas, tengo el siguiente problemita:

Mi base de datos es sql server 2005, programo en delphi 2006, y uso ADO.

Tengo una tabla que se llama CTACTE (Cuenta Corriente) en la cual se guardan todos los movimientos (DEBITOS, CREDITOS, FACTURAS, PAGOS) de los clientes.
Sus campos son: Id_cliente, MontoMovimiento(si es un pago o una nota de crédito el valor es negativo), TipoMovimiento(DB,FAC,NC,PAG), Concepto, FechaEmision, Status(A ó N).

se muestra mas o menos asi cuando ejecuto los siguiente:
Código SQL [-]
Select * from CTACTE where Id_cliente=1
Código SQL [-]
 
ID_cliente    MontoMovimiento            TipoMovimiento            Concepto              FechaEmision
      1                    1,000.00                      FAC                        Factura                 08/08/2007
      1                     -500.00                       NC                         nota cre                01/09/2007
Perfecto, pero yo quiero que me salga una columna acumulando el balance del cliente, o que salga de esta forma:
Código SQL [-]
ID_cliente    MontoMovimiento            Acumulado           Concepto           FechaEmision
      1                    1,000.00                 1,000.00               Factura               08/08/2007
      1                     -500.00                   500.00                nota cre              01/09/2007
la columna que quiero calcular, es ACUMULADO, y no se como hacerlo


Sus aportes serían de gran ayuda.

Gracias Anticipadas

Última edición por egarc fecha: 18-09-2007 a las 18:32:13.
Responder Con Cita
  #2  
Antiguo 18-09-2007
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
No es cierto... dejame consulto
__________________


Última edición por ContraVeneno fecha: 18-09-2007 a las 19:30:55. Razón: pequeño error
Responder Con Cita
  #3  
Antiguo 18-09-2007
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
Código SQL [-]
Select cast(F1.MontoMovimiento as money) as total,
cast(sum (F2.MontoMovimiento) as money) as Acumulativo
from CTACTE F1
join CTACTE F2 on (F1.MontoMovimiento > F2.MontoMovimiento) 
or (F1.MontoMovimiento = F2.MontoMovimiento and F1.Codigo= F2.Codigo)
Group By F1.MontoMovimiento

"Codigo" es el índice que identifica a cada registro
__________________

Responder Con Cita
  #4  
Antiguo 18-09-2007
egarc egarc is offline
Miembro
 
Registrado: jul 2006
Posts: 60
Poder: 18
egarc Va por buen camino
no entendi nada......
Responder Con Cita
  #5  
Antiguo 18-09-2007
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
Código SQL [-]
Select C1.MontoMovimiento, Sum(C2.MontoMovimiento)
from CTACTE C1
join CTACTE C2 on (C1.MontoMovimiento > C2.MontoMovimiento) or (C1.MontoMovimiento = C2.MontoMovimiento)
Group By C1.MontoMovimiento
Order by C1.MontoMovimiento

Más claro, ya no puedo
__________________

Responder Con Cita
  #6  
Antiguo 18-09-2007
egarc egarc is offline
Miembro
 
Registrado: jul 2006
Posts: 60
Poder: 18
egarc Va por buen camino
Talking

Muchas gracias, es exactamente lo que buscaba.....
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Hacer que una columna de un DbGrid aparezca distinta según valor Aprendiendo OOP 11 30-11-2018 14:47:20
Como hacer esto a una columna de un cxgrid??? AFilth Varios 0 22-11-2006 12:08:19
Como hacer para que el ancho de una columna de un TListView permanezca inalterable abracadabra OOP 17 01-10-2005 00:33:35
como hacer que una columna del dbgrid contenga un valor de un TEdit en cada celda Shidalis OOP 2 02-08-2005 12:05:35
Como hacer invisible columna de Grid? txuseibar OOP 4 10-10-2003 19:04:15


La franja horaria es GMT +2. Ahora son las 01:22:06.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi