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;
    }