administrador.base.orm.columnas.add_column - gamboamartin/administrador GitHub Wiki
add_column
Esta función pública se encarga de agregar una columna calculada a una consulta SQL utilizando la función IFNULL y SUM.
Signatura
final public function add_column(string $alias, string $campo): string|array
Parámetros
$alias (string): El alias para la columna calculada.
$campo (string): El nombre del campo sobre el cual se realizará el cálculo.
Retorna
- array|string: Una cadena que representa la columna calculada en formato SQL, o un mensaje de error si alguno de los parámetros está vacío.
Explicación Detallada
Limpieza de parámetros: Se eliminan los espacios en blanco al inicio y al final de los parámetros $campo y $alias utilizando la función trim().
Validación de los parámetros: Se verifica si alguno de los parámetros está vacío. Si es así, se devuelve un mensaje de error.
Generación de la columna calculada: Se utiliza la función IFNULL y SUM para crear una columna calculada en formato SQL que sume el valor del campo especificado. Se utiliza el alias especificado para la columna calculada.
Retorno de datos o mensaje de error: Finalmente, se devuelve la cadena que representa la columna calculada si el proceso se realizó correctamente, o un mensaje de error si alguno de los parámetros está vacío.
Ejemplos
// Ejemplo 1: Agregar una columna calculada
$alias = "total_ventas";
$campo = "monto";
$resultado_columna = add_column($alias, $campo);
if (is_string($resultado_columna)) {
// Usar la columna calculada en la consulta SQL
echo "Columna calculada: $resultado_columna";
} else {
// Manejar el mensaje de error
echo "Error: $resultado_columna";
}
Código de la Función
final public function add_column(string $alias, string $campo): string|array
{
$campo = trim($campo);
if($campo === ''){
return $this->error->error(mensaje: 'Error $campo no puede venir vacio', data: $campo, es_final: true);
}
$alias = trim($alias);
if($alias === ''){
return $this->error->error(mensaje:'Error $alias no puede venir vacio', data: $alias, es_final: true);
}
return 'IFNULL( SUM('. $campo .') ,0)AS ' . $alias;
}