En este post sobre Gorm (un ORM de Go, Golang) te muestro cómo obtener la sumatoria (usando sum de SQL) para escanearla y leerla en una variable, de una manera sencilla.
Normalmente la consulta es, por ejemplo, como se ve a continuación. Puede o no tener where
, es solo un ejemplo.
select coalesce(sum(retiro_de_ahorros.monto), 0) as total
from retiro_de_ahorros
where id_empleado = ?
Como ves solo tenemos una columna que es el total, así que solo tenemos una fila y una columna.
Recuerda que usamos coalesce por si no hay datos para evitar un null
.
Para hacerlo con Gorm simplemente usamos el método Raw para enviar la consulta, luego invocamos a Row
para obtener una fila y finalmente invocamos a Scan
para escanear la única fila dentro de la variable.
El ejemplo anterior quedaría así:
var total float64
var err error
idEmpleado := 1 // Recuerda que el where no es obligatorio; simplemente así es mi ejemplo
bd, err := obtenerBd()
if err != nil {
return
}
defer bd.Close()
fila := bd.Raw(`select coalesce(sum(retiro_de_ahorros.monto), 0) as total
from retiro_de_ahorros
where id_empleado = ?`, idEmpleado).Row()
err = fila.Scan(&total)
Con esto también podemos obtener otras cosas que impliquen solamente al escaneo de una variable en Gorm.
Hoy te voy a presentar un creador de credenciales que acabo de programar y que…
Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…
En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…
En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…
Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…
En este artículo te voy a enseñar cómo usar un "top level await" esperando a…
Esta web usa cookies.