FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Hacer columna saldo acumulado SQL Firebird 3
Que tal queridos compañeros.
Abro este post buscando ayuda con un tema que se ha mencionado en un par de ocasiones, que es como crear una columna que acumule saldos de cuenta. Con la siguiente sentencia creo un extracto de cuenta, donde se visualizan, las fechas del movimiento, y el importe que acredita o debita. Y la idea es que se vaya calculando el saldo de la cuenta parcial en cada registro.
La sentencia anterior lo consigue perfectamente, pero aparece el de que si ORDENO POR FECHA, y si se cargan fechas anteriores luego de la fecha de hoy por ej. Los registros se ordenan por ID y el saldo se calcula por el ID mientras que los registros de muestran por fecha y no conciden. Aqui pego un ejemplo con numeros de lo que da esta sentencia. EL SALDO FINAL DEBE SER 480 Cita:
Así queda orden por ID, los saldos quedan bien ordenados pero no las fechas y los movimientos Cita:
Cita:
Gracias a todos por su tiempo |
#2
|
||||
|
||||
Podrias dar los datos inciales?
__________________
El malabarista. |
#3
|
||||
|
||||
O no se entiende lo que preguntas, o simplemente no es posible hacer lo que quieres.
Un saldo acumulado se hace en un orden determinado, ese orden puede ser la fecha/hora de apunte, o un número de factura, o algún otro dato dependiendo del caso. Vamos a suponer que es una entrada de ingresos y gastos, que se realiza por fecha y hora del apunte, o sea, compras algo y lo registras, ahora vendes y lo registras, haces un pago y lo registras, etc. Código:
Fecha y hora Concepto Importe Saldo 2019.10.17 09:01:22 Me tocó la lotería 100 100 2019.10.17 09:05:35 Pago de la luz 50 50 2019.10.17 09:15:27 Cobro de fra.33 20 70 2019.10.17 09:23:52 Pago cafe 2 68 No puedes pretender ordenar, por ejemplo, por el concepto, y que el saldo sea correcto. Poder, puedes, pero no es un saldo correcto. En tu software debe existir un dato que es el que se utilice para esos saldos, debes usar ese. Código:
Fecha y hora Concepto Importe Saldo ¡¡¡ Mal, obviamente !!! 2019.10.17 09:15:27 Cobro de fra.33 20 70 2019.10.17 09:01:22 Me tocó la lotería 100 100 2019.10.17 09:23:52 Pago cafe 2 98 2019.10.17 09:05:35 Pago de la luz 50 48 Código:
Fecha y hora Concepto Importe Saldo 2019.10.17 09:15:27 Cobro de fra.33 20 20 2019.10.17 09:01:22 Me tocó la lotería 100 120 2019.10.17 09:23:52 Pago cafe 2 118 2019.10.17 09:05:35 Pago de la luz 50 68
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código Únete al grupo Teaming clubdelphi | Colabora mediante Paypal Última edición por Casimiro Notevi fecha: 17-10-2019 a las 10:43:56. |
#4
|
|||
|
|||
Buenos Días Casimiro.
Trataré de contarles mejor. Se trata de una tabla con movimientos de cuenta de clientes, donde hay un ID unico, y luego IDCLIENTE, FECHA, DEBITO Y CREDITO. El saldo lo calculaba desde el Query con Sum(C2.DEBE-C2.HABER)as SALDO. Esto estaba funcionando perfecto ordenado por ID que es el campo único incremental que tengo. Pero ahora resulta que necesito añadir movimientos a la tabla con fechas anteriores a las ya existentes, y entonces el ID ultimo agregado irá al final. Por lo que necesito ordenar por Fecha (solo fecha no tengo horas y si las tuviera no me servirían) Porque por ej Hoy, se puede registrar un movimiento de hace 2 días. Intenté cambie el order by a FECHA, pero ordena los registros por fecha, mientras que el saldo lo calcula por ID. Necesito ver como calcular los saldos por el orden de fecha. MAMCX me pedía datos iniciales. Simplemente pretendo ordenar los siguientes datos (esto Código:
ID FECHA IDCLI DEBE HABER SALDO 80 2019-08-27 11 120 0 120 81 2019-08-27 11 50 0 170 82 2019-08-27 11 250 0 420 131 2019-08-29 11 300 0 720 261 2019-09-03 11 30 0 750 273 2019-09-14 11 0 20 730 274 2019-09-01 11 0 150 580 275 2019-09-12 11 0 100 480
Si cambio el on (C1.id >= C2.id) por FECHA en lugar de ID, en los 3 registros que tiene la misma fecha me pone como saldo en cada registro la suma de los 3 registros. |
#5
|
||||
|
||||
No puedes agrupar por fecha y cliente porque en una misma fecha habrá registros de distintos clientes.
|
#6
|
|||
|
|||
Lo hago así porque en la tabla tengo todos los clientes, pero este extracto es individual por cliente, entonces en el parametro :cli le paso por ej "11" para obtener los movimientos de cuenta del cliente ese
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
calcular saldo Firebird+DBX | hibero | Firebird e Interbase | 4 | 24-03-2008 16:42:53 |
Hacer readonly una columna en stringgrid | zcatzz | Varios | 5 | 26-09-2007 16:59:50 |
Como hacer una columna Acumulada en SQL | egarc | SQL | 14 | 21-09-2007 23:26:01 |
Como hacer esto a una columna de un cxgrid??? | AFilth | Varios | 0 | 22-11-2006 12:08:19 |
Como hacer invisible columna de Grid? | txuseibar | OOP | 4 | 10-10-2003 19:04:15 |
|