![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
No puedes agrupar por fecha y cliente porque en una misma fecha habrá registros de distintos clientes.
|
#2
|
|||
|
|||
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
|
#3
|
|||
|
|||
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
|
#4
|
||||
|
||||
Entonces suma el debe y el haber, si quieres agrupar por ellos, en caso contrario saldrá un registro por cada cifra distinta.
|
#5
|
|||
|
|||
Cita:
|
#6
|
||||
|
||||
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 - |
#7
|
||||
|
||||
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. |
#8
|
|||
|
|||
Ahora estoy probando modificar eso.
tuve que poner mytable.* en lugar de * solo al inicio y ahí larga algo, ahora veré que puedo hacer con eso Última edición por amadis fecha: 18-10-2019 a las 00:33:57. |
![]() |
|
|
![]() |
||||
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 |
![]() |
|