Mi query es:
Código SQL:
Ver original
SELECT rt.[name] AS [DESC] ,CASE WHEN [crew] = 'Grupo 1' THEN ROUND(SUM(stat.[duration] / 3600),2)END AS Grupo1 ,CASE WHEN [crew] = 'Grupo 2' THEN ROUND(SUM(stat.[duration] / 3600),2)END AS Grupo2 ,CASE WHEN [crew] = 'Grupo 3' THEN ROUND(SUM(stat.[duration] / 3600),2)END AS Grupo3 ,CASE WHEN [crew] = 'Grupo 4' THEN ROUND(SUM(stat.[duration] / 3600),2)END AS Grupo4 FROM [scmapview].[dbo].[hist_statusevents] stat INNER JOIN [scmapview].[dbo].[hist_exproot] eroot ON stat.shiftindex = eroot.shiftindex INNER JOIN scmapview.dbo.hist_reasontable AS rt ON stat.shiftindex = rt.shiftindex AND stat.[STATUS] = rt.[STATUS] AND stat.[category] = rt.[category] AND stat.[reason] = rt.[reason] WHERE [shiftdate] BETWEEN '2015-01-01' AND '2015-01-07' AND stat.[STATUS] IN (4) AND [unit] = '1' GROUP BY crew , rt.[name] ORDER BY rt.[name]
y me entrega esto:
Desc Grupo 1 Grupo2 grupo3 grupo 4
ABASTECIMIENTO COMBUSTIBLE NULL NULL NULL 48.93
ABASTECIMIENTO COMBUSTIBLE NULL 9.21 NULL NULL
ABASTECIMIENTO COMBUSTIBLE NULL NULL 54.35 NULL
ABASTECIMIENTO COMBUSTIBLE 27.36 NULL NULL NULL
CAMBIO DE BANCO 0 NULL NULL NULL
Quiero hacer una query que agrupe asi:
Desc Grupo 1 Grupo2 grupo3 grupo 4
ABASTECIMIENTO COMBUSTIBLE 27.36 NULL 54.35 48.93
Alguien sabe como hacerlo?
gracias.