Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Regrouper et additionner les données des lignes dans des colonnes dans MS-SQL ?

Vous pouvez également faire le pivot comme ceci :

select workweek,
       sum(case when Catg = 'Cat1' then cost end) as Cat1TotalCost,
       sum(case when Catg = 'Cat2' then cost end) as Cat2TotalCost,
       sum(case when Catg = 'Cat3' then cost end) as Cat3TotalCost
from DataTable
group by Workweek

Vous ne devriez pas faire une sous-requête distincte pour chaque valeur.

Le pivot déclaration est également une alternative très raisonnable. J'ai tendance à m'en tenir à la version explicite (ci-dessus), car elle me donne plus de flexibilité dans l'ajout de colonnes.