¿Cómo se puede hacer una consulta similar a esta?

206 views
Skip to first unread message

Alejandro Garcia G.

unread,
Jun 11, 2019, 12:54:39 PM6/11/19
to Comunidad de Visual Foxpro en Español
Me han solicitado que el programa una consulta me traiga un acumulado de unos intereses y aportes, quiero saber si algo así se puede hacer en una consulta MySQL:

Tengo una consulta que me trae, fecha, aporte e interes, requiero la columna acumulado que es, la sumatoria del registro anterior mas el registro actual ver imagen para mejor comprensión.


Gracias.
Tabla.png

Alejandro Garcia G.

unread,
Jun 11, 2019, 3:14:22 PM6/11/19
to Comunidad de Visual Foxpro en Español
Me autorespondo. Buscando, comparando y organizando encontre algo que de momento me esta funcionando, acá se los dejo:

SELECT p.apor_fecaporte, p.apor_valaporte, p.apor_valint, 
IFNULL((p.apor_valaporte + p.apor_valint) + (SELECT SUM(apor_valaporte + apor_valint)
FROM coo_maportes m
WHERE m.apor_fecaporte < p.apor_fecaporte
AND apor_estfac <> 'A' 
AND apor_tipofact = 'RJ' 
AND apor_codter = '22397219'), (p.apor_valaporte + p.apor_valint)) AS saldo
FROM coo_maportes p
WHERE p.apor_estfac <> 'A' 
AND p.apor_tipofact = 'RJ' 
AND p.apor_codter = '22397219' 
ORDER BY p.apor_ano , p.apor_mes ;

Los fitlro son para que me de el resultado de un cliente. 
Solución.png

ZeRoberto

unread,
Jun 11, 2019, 11:01:15 PM6/11/19
to publicesvfoxpro
Yo siempre lo manejo con procedimientos almacenados

SET @lnSaldo = 0;
SELECT Codigo, Descripcion, Tipo, Importe, @lnSaldo := @lnSaldo + (Importe * IF(Tipo = 'E', 1, -1)) Saldo

Saludos

Ze






--
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/publicesvfoxpro/5ec518ff-23b8-464c-a67b-1b594bd53d5b%40googlegroups.com.

Alejandro Garcia G.

unread,
Jun 12, 2019, 12:59:27 PM6/12/19
to Comunidad de Visual Foxpro en Español
Gracias por la respuesta, sin embargo, me he confundido un poco. 

¿Puedes poner el ejemplo con los datos que pase para ver si logro implementarlo como tu comentas?

Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publice...@googlegroups.com.

ZeRoberto

unread,
Jun 12, 2019, 2:07:36 PM6/12/19
to publicesvfoxpro
En mi caso el SELECT lo unico que hace es añadir la columna SALDO para acumular el importe de acuerdo al Tipo de movimiento si es E Entrada y si es S Salida

FECHA DESCRIPCIÓN TIPO IMPORTE SALDO
10/06/2019 COBRANZA E 100.00 100.00
11/06/2019 ENTRADA EFECTIVO E 10.00 110.00
11/06/2019 PAGO DE LUZ S 25.00 85.00
12/06/2019 COMPRA DE AGUA S 10.00 75.00
13/06/2019 VENTA DE GAS E 50.00 125.00
Leyenda: E - Entrada, S - Salida

Saludos

Ze


Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/publicesvfoxpro/5874441e-17ce-4b7b-9d50-dda865035074%40googlegroups.com.

Alejandro Garcia G.

unread,
Jun 12, 2019, 4:19:17 PM6/12/19
to Comunidad de Visual Foxpro en Español
Efectivamente mucho mejor de esta manera que me indicas, gracias. Acá dejo el código del ejemplo que coloque anteriormente.


SET @lnsaldo = 0 ;

SELECT p.apor_fecaporte, p.apor_valaporte, p.apor_valint, @lnsaldo := @lnsaldo + (apor_valaporte + apor_valint) saldo
FROM coo_maportes p
WHERE p.apor_estfac <> 'A' 
AND p.apor_tipofact = 'RJ' 
AND p.apor_codter = '22397219' 
ORDER BY p.apor_ano , p.apor_mes ;

El resultado es igual al obtenido anteriormente  en otro código y se ajusto a lo que necesito.

Salduos.



El martes, 11 de junio de 2019, 22:01:15 (UTC-5), ZeRoberto escribió:
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publice...@googlegroups.com.

Jose Antonio Blasco

unread,
Jun 13, 2019, 6:50:51 AM6/13/19
to Comunidad de Visual Foxpro en Español
!!! Vaya !!!, me parece muy interesante esta técnica.
¿ Donde puedo encontrar documentación sobre la forma de usarla ?

Gracias por anticipado.

Un saludo.

Jose A. Blasco
Zaragoza - España
Visual FoxPro 9 SP2



Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/publicesvfoxpro/b635dbe0-ee7c-4d29-ab45-ff6559cdc568%40googlegroups.com.

Alejandro Garcia G.

unread,
Jun 15, 2019, 12:21:50 PM6/15/19
to Comunidad de Visual Foxpro en Español
Por mi parte me toco bucar casos similares en foros, creo que en es.stackoverflow.com, encontre algo parecido al ejemplo que puse al inicio cuando me respnodi, la parte de ZeRoberto, que me parecio mas funcional y prolija, no le tengo información sobre en dónde conseguir documentción. 

Pero si alguien tiene documentación de este tipo de consultas o agrupamientos/sumatorias, seria excelente que nos la compartieran.

Saludos.

mpulla

unread,
Jun 16, 2019, 11:10:23 PM6/16/19
to Comunidad de Visual Foxpro en Español
Hola

En las ultimas versiones MySql implemento funciones de ventana que le vienen bien a lo que necesitas, puedes ver este link

Saludos.
Mauricio
Reply all
Reply to author
Forward
0 new messages