¿Estás luchando con la agrupación de datos en SQL Server basada en criterios específicos? En esta publicación del blog, exploraremos una solución creativa utilizando columnas calculadas para simplificar el proceso de agrupación.
Imagina que tienes una tabla llamada “PresupuestoReal” con columnas para ID de cuenta, presupuesto y valores reales. Quieres agrupar los datos en función de ciertos criterios, como gastos operativos, gastos personales y materiales y servicios. En lugar de utilizar consultas complejas con declaraciones CASE, podemos aprovechar las columnas calculadas para lograr esto.
Comencemos creando la tabla “PresupuestoReal” e insertando algunos valores de muestra:
CREATE TABLE PresupuestoReal ( idcuenta INT, presupuesto NUMERIC(10,2), real NUMERIC(10,2) ) INSERT INTO PresupuestoReal (idcuenta, presupuesto, real) VALUES (400010, 300, 299), (501010, 100, 102), (502010, 200, 150), (503010, 400, 150), (507010, 800, 150)
Ahora, podemos agregar una columna calculada llamada “GrupoCuenta” a la tabla utilizando una declaración CASE para definir nuestras agrupaciones:
ALTER TABLE PresupuestoReal ADD GrupoCuenta AS CASE WHEN idcuenta >= 400000 AND idcuenta < 489999 THEN 1 WHEN idcuenta >= 501000 AND idcuenta < 503000 THEN 2 WHEN idcuenta >= 503000 AND idcuenta < 504000 THEN 3 WHEN idcuenta >= 507000 AND idcuenta < 508000 THEN 4 ELSE 5 END
Con la columna calculada en su lugar, ahora podemos consultar y agrupar fácilmente los datos en función del GrupoCuenta:
SELECT CASE WHEN pr.GrupoCuenta = 1 THEN 'Gastos Operativos' WHEN pr.GrupoCuenta = 2 THEN 'Gastos Personales' WHEN pr.GrupoCuenta = 3 THEN 'Materiales y Servicios' WHEN pr.GrupoCuenta = 4 THEN 'Reservas' END AS 'Objeto', SUM(pr.presupuesto) AS Presupuesto, SUM(pr.real) AS Real FROM PresupuestoReal AS pr GROUP BY pr.GrupoCuenta
Esta consulta proporcionará una visión general rápida de los números financieros agrupados por las diferentes categorías. Puedes personalizar los títulos en la declaración CASE para que se ajusten a tus requisitos específicos.
Aunque usar la columna calculada directamente en la consulta funciona, se recomienda crear una tabla separada que mapee el GrupoCuenta a un título. Esto permite un mantenimiento más fácil y el ordenamiento de los grupos en informes.
Al utilizar columnas calculadas, hemos simplificado el proceso de agrupación de datos en SQL Server. Este enfoque puede ser particularmente útil cuando se trata de criterios complejos y puede facilitar a los clientes la consulta y el análisis de los datos.
La próxima vez que te encuentres con un desafío de agrupación similar, considera utilizar columnas calculadas como una solución creativa. Puede ahorrarte tiempo y esfuerzo a largo plazo.
Gracias por leer esta publicación del blog. ¡Estén atentos para más consejos y trucos de SQL Server!
#SQLNewBlogger