Du kan også lave pivoten sådan her:
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
Du bør ikke lave en separat underforespørgsel for hver værdi.
pivot
statement er også et meget rimeligt alternativ. Jeg er tilbøjelig til at holde fast i den eksplicitte version (ovenfor), fordi den giver mig mere fleksibilitet til at tilføje kolonner.