sql >> Base de Datos >  >> Database Tools >> SSMS

Agrupación de números de cuenta de SQL y obtención de subtotales y total general

Tienes más control con conjuntos de agrupación:

SELECT ACTNO, grp, SUM(PLAN), SUM(FORECAST)
FROM (SELECT cc.*,
             (CASE WHEN ACTNO IN ('100', '101') THEN 1
                   WHEN ACTNO IN ('200', '201', '202', '203') THEN 2
                   WHEN ACTNO IN ('220', '300', '301') THEN 3
              END) as grp
      FROM COST_CENTER cc
     ) cc
GROUP BY GROUPING SETS ( (ACTNO, grp), (grp), ());

Probablemente puedas eliminar grp desde el SELECT . . . Nunca he usado GROUPING SETS sin incluir la columna, sin embargo.