sql >> Database >  >> RDS >> Sqlserver

Groepeer en som rijgegevens op in kolommen in MS-SQL?

Je kunt het draaien ook als volgt doen:

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

Je zou niet voor elke waarde een aparte subquery moeten doen.

De pivot verklaring is ook een zeer redelijk alternatief. Ik heb de neiging om bij de expliciete versie (hierboven) te blijven, omdat het me meer flexibiliteit geeft bij het toevoegen van kolommen.



  1. gemarkeerde gebruiker met label op tijd voor elke maand

  2. TRIGGER's die ervoor zorgen dat INSERT's mislukken? Mogelijk?

  3. Gegevens invoegen van front-end naar mysql db in angularjs

  4. SQL-sorteervolgorde met null-waarden als laatste