Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Hacer columna saldo acumulado SQL Firebird 3 (https://www.clubdelphi.com/foros/showthread.php?t=94244)

amadis 21-10-2019 16:50:24

Hola colegas, disculpen que tuve que ausentarme unos días.

El aporte del colega Mamcx responde lo que preguntaba y necesitaba a la perfección.

Ahora unas consultas más para comprender, como funciona ésto.

Lo que veo es una gran simplificación de la consulta original que había planteado sin resultados

¿esto es CTE?

¿que es lo que hacen Over y Partition?

Gracias a todos y espero que esto ayude a muchos más

mamcx 21-10-2019 19:18:03

Hay buen material de esto. Mi primera exposición a lo nuevo en SQL fue:

https://modern-sql.com/video

CTE es un poco mas dificil de entender, pero las funciones windows son mas simples.

SQL funciona maso asi:

Código PHP:

for current in query.next() do
  
//tengo solo una fila. No se que datos habian antes o despues
  
print current 

Con windows ( un "window" aqui se entienden como una "vista a la ejecucion"), es como si pasara esto:
Código PHP:

old null;
next null
for currentnext in query.next(); query.next() do
   print 
oldcurrentnext //la fila anterior, actual y siguiente
   //Ahora puedo usar acumulados en base a lo anterior!
   
old current 


amadis 21-10-2019 19:39:05

Muchas gracias por el material y el link del video. Comenzaré a estudiar modern-sql
Porque una vez comprendido ahora tiempo, dolores de cabeza y seguramente mejora la performance.


La franja horaria es GMT +2. Ahora son las 11:20:34.

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