Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Gruppieren und summieren Sie Zeilendaten in Spalten in MS-SQL?

Sie können den Pivot auch so durchführen:

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

Sie sollten nicht für jeden Wert eine separate Unterabfrage durchführen.

Der pivot Aussage ist auch eine sehr vernünftige Alternative. Ich neige dazu, bei der expliziten Version (oben) zu bleiben, weil sie mir mehr Flexibilität beim Hinzufügen von Spalten gibt.