sql >> Base de Datos >  >> RDS >> Sqlserver

¿Agrupar y sumar datos de fila en columnas en MS-SQL?

También puedes hacer el pivote así:

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

No debería estar haciendo una subconsulta separada para cada valor.

El pivot declaración es también una alternativa muy razonable. Tiendo a quedarme con la versión explícita (arriba), porque me da más flexibilidad para agregar columnas.