次のようにピボットを行うこともできます:
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
プレ>値ごとに個別のサブクエリを実行するべきではありません。
pivot
ステートメントも非常に合理的な代替手段です。列を追加する際の柔軟性が高まるため、明示的なバージョン (上記) を使用する傾向があります。