Hola amigos programadores, esta semana les quiero platicar acerca de una función en lenguaje Progress 4gl que es ACCUM, esta función es un similar a SUM de SQL. Lo que hacen ambas funciones es consolidar la suma de un campo que cumpla ciertas características.
SELECT SUM(ih_invoicetotal) , ih_bill
FROM ih_hist
WHERE ih_domain = 'dominio'
AND YEAR(ih_inv_date) = 2019
GROUP BY ih_bill
El mismo ejemplo pero con sentencia de Progress 4gl es:
FOR EACH ih_hist WHERE ih_domain = 'dominio'
AND YEAR(ih_inv_date) = 2019 NO-LOCK BREAK BY ih_bill:
ACCUMULATE ih_invoicetotal (TOTAL BY ih_bill).
IF LAST-OF(ih_hist.ih_bill) THEN
DISPLAY ACCUM TOTAL BY ih_bil ih_invoicetotal ih_bill.
END.
Como se ve en las imágenes el resultado es el mismo. Las funciones que utilizamos de Progress fueron:
- ACCUMULATE : Esta opción nos permite ir sumando o accumulando el valor de una variable de nuestra tabla
https://documentation.progress.com/output/ua/OpenEdge_latest/index.html#page/dvref/accum-function.html
- TOTAL BY: Nos indica porque campo vamos a consolidar o agrupar el total, ademas del total, también puede utilizarse AVERAGE, COUNT, MAXIMUM,MINIMUM,
- ACCUM TOTAL BY: Para poder mostrar el total en pantalla utilizamos esta sentencia
- LAST-OF: Indicamos al query que cuanto termine de recorrer todos los registros que coincidan con un tipo se detenga, también existe la opción de FIRST-OF
- BREAK BY: Le decimos al query que vaya buscando y agrupando por un campo en la tabla de nuestra base de datos
Comentarios
Publicar un comentario