Cuando quieres realizar un sumatorio de X cantidad, ¿has sentido que te atascas y te quedas pensando una y otra vez en la posible solución?

Tranquilo, aquí te explicaremos las dos formas más comunes de realizar este tipo de tareas, así que sin más preámbulo, procedemos a explicártelo.

1. Hacer una relación

Por lo general, nosotros solemos tener una tabla de sesiones donde colocamos todos los globales, en este caso crearemos una tabla sesiones donde creamos dos campos globales:

Ses_gFechaIni

Ses_gFechaFin

Si te fijas, colocamos un (g ) después del guion, esto nos indica que es un campo global, es una forma que tenemos para identificar los tipos de campos de un solo vistazo.

Después de que tenemos estos campos creados, pasamos a realizar la relación entre la tabla Sesiones y la tabla Facturas, por ejemplo:

 

La relación que acabamos de hacer, buscará todas las facturas que sean >= a la Ses_gFechaIni y <= “Ses_gFechaFin, con lo cual ya tenemos todas las facturas que queremos calcular entre esas dos fechas, ahora aquí podemos hacer 2 cosas:

1 – Crear un campo calculado (no recomendable)

2 – Crear un paso de guion (recomendable)

Así que, aplicando buenas prácticas escogeremos la opción dos, el guion debe de tener una variable en donde haremos el cálculo mediante la relación que hicimos anteriormente, esto quedaría de la siguiente manera.

Nombre del guión:  Sum_Total_Factura

Set Variable [ $PG ; Value: Get ( ScriptParameter ) ]

If [ $PG = «btn1» ]

Set Variable [ $SumFacturas ; Value: Sum ( Facturas::Fac_TotalFac ) ]   

End If

Set Field [ Sesiones::Ses_gSumFacturas ; $SumFacturas ]

Podemos crear un campo global donde le pasemos el valor de la variable, en nuestro caso, creamos en la tabla Sesiones un campo con el nombre Ses_gSumFacturas.

Ahora si rellenamos los campos Ses_gFechaIni y Ses_gFechaFin con las fechas que queremos saber el valor total de facturación, al correr el guion nos rellenará el campo Ses_gSumFacturas con el total obtenido de la variable $SumFacturas.

2. Hacer sentencia SQL

Ya vista la forma anterior de hacer este tipo de sumatorios, nos queda explicar cómo podemos obtener la suma de todas las facturas que están en el rango de fecha que queremos, para este tipo de cálculo no hace falta crear relaciones ya que todo se lo indicaremos a la sentencia SQL.

Vamos al paso de guión Sum_Total_Factura y añadimos el siguiente código.

Set Variable [ $PG ; Value: Get ( ScriptParameter ) ]

If [ $PG = «btn1» ]

Set Variable [ $SumFacturas ; Value: Sum ( Facturas::Fac_TotalFac ) ]

Else If [ $PG = «btn2» ] 

Set Variable [ $SumFacturas ; Value: Let ( [ ~fechaIni = Sesiones::Ses_gFechaIni; ~fechaFin = Sesiones::Ses_gFechaFin; ~resultado = ExecuteSQL («SELECT SUM(Fac_TotalFac) FROM Facturas WHERE Fac_Fecha >= ? AND Fac_Fecha <= ? «; «» ; «» ; ~fechaIni  ; … ]

End If

Set Field [ Sesiones::Ses_gSumFacturas ; $SumFacturas ]

¿Qué es todo esto que hemos hecho? Tranquilo, ya te lo vamos a explicar con lujo de detalles. Hemos creado una variable $SumFacturas y hemos hecho un cálculo con la función Let, a la cual le hemos añadido a su vez la función “ExecuteSQL”  donde decimos lo siguiente:

Oye SQL Selecciona y suma el campo Fac_TotalFac (SELECT SUM(Fac_TotalFac) ), que están en la tabla Facturas ( FROM Facturas ) y busca en todos los registro donde el campo Fac_Fecha sea mayor o igual a x Y que el campo Fac_Fecha sea menor igual a ?(  WHERE Fac_Fecha >= ? AND Fac_Fecha <=? )

Nota: los signos de exclamación representan un parámetro que será sustituido posteriormente.

Ahora solo queda pasar los parámetros, la primera comilla significa (separador Campo) y la segunda (separador Fila), en nuestro caso pasamos los 2 pares de comillas vacías, ya que no necesitamos ni separar los campos ni separar las filas.

Luego tenemos los valores que van a sustituir a los parámetros ( ? ), en el primer parámetro le pasamos la variable ~fechaIni  y en el segundo parámetro pasaremos la variable ~fechaFin,  con esto ya tenemos formada la sentencia SQL.

Os dejo la siguiente imagen dónde se ve mejor la sentencia SQL:

 

Estas son las dos formas que queríamos presentarte, tú puedes elegir con cuál te sientes mejor, para terminar, podríamos hacer un layout sencillo para probar todo lo que hemos hecho, quedaría algo así.

 

 

En Bitwok nos encanta compartir nuestros tips, si tienes alguna duda acerca de como llevar a cabo estos pasos, no dudes en contactar con nosotros al correo info@bitwok.es.

Además, para mantenerte al día de nuestras publicaciones, síguenos en nuestras redes sociales, Linkedin y Twitter.

Si tienes alguna consulta, puedes escribirla en la sección de comentarios de este artículo. ¡Será genial poder ayudarte e interactuar!