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.