FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
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. |
#2
|
||||
|
||||
No puedes agrupar por fecha y cliente porque en una misma fecha habrá registros de distintos clientes.
|
#3
|
|||
|
|||
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
|
#4
|
|||
|
|||
desde mi ignorancia, creo que la solución está en la primera parte donde calculo el saldo. Ver la posibilidad de indicar que se calcule por fecha
|
#5
|
||||
|
||||
Entonces suma el debe y el haber, si quieres agrupar por ellos, en caso contrario saldrá un registro por cada cifra distinta.
|
#6
|
|||
|
|||
Cita:
|
#7
|
||||
|
||||
Hola,
utiliza una store procedure. Creo que es la solución a tu problema. No recuerdo bien la sintaxis, pero hay abundante información. Saludos CREATE OR ALTER MI_PROCEDURE ( variables de entrada...) returns ( tu lista de campos incluyendo el saldo) variables para acumular y controlar el flujo FOR select bla bla bla into :v1, :v2, :v3 ordenado por lo que te de la gana do si se cumple la condicion sumo, si no reseteo acumulado hago el sumatorio de lo que quiero en base a la condicion que quiero... suspend end
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino - |
#8
|
||||
|
||||
Si entiendo bien, esta consulta lo resuelve:
Una explicacion de las funciones windows/cte (en postgresql que normalmente es lo que tiene mejor documentacion): http://www.postgresqltutorial.com/po...ndow-function/ Código:
id | fecha | cli | debe | haber | saldo | saldo_calculado -----+------------+-----+------+-------+-------+----------------- 80 | 2019-08-27 | 11 | 120 | 0 | 120 | 120 81 | 2019-08-27 | 11 | 50 | 0 | 170 | 170 82 | 2019-08-27 | 11 | 250 | 0 | 420 | 420 131 | 2019-08-29 | 11 | 300 | 0 | 720 | 720 261 | 2019-09-03 | 11 | 30 | 0 | 750 | 750 273 | 2019-09-14 | 11 | 0 | 20 | 730 | 730 274 | 2019-09-01 | 11 | 0 | 150 | 580 | 580 275 | 2019-09-12 | 11 | 0 | 100 | 480 | 480
__________________
El malabarista. |
|
|
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 |
|