SSMS
 sql >> Base de données >  >> Database Tools >> SSMS

Regroupement SQL des numéros de compte et obtention des sous-totaux et du total général

Vous avez plus de contrôle avec les ensembles de regroupement :

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), ());

Vous pouvez probablement supprimer grp depuis le SELECT . . . Je n'ai jamais utilisé GROUPING SETS sans inclure la colonne, cependant.