TSQL Pivot 4 столбца значений - PullRequest
0 голосов
/ 29 мая 2018

В SQL Server 2008 я пытаюсь «перевести» приведенный ниже формат таблицы в широкоформатный формат с использованием столбца «Период» (в реальных данных существует 5 различных периодов).

Я искал, но непока нашел решение этой проблемы.Я сослался на https://www.tangrainc.com/blog/2009/01/pivoting-on-multiple-columns/#comment-504, но не могу перевести логику на> 2 столбца значений - что мне нужно.

Есть мысли?Вы, наверное, догадались, я не эксперт по SQL.Использование SQL Server 2008.

Спасибо, Крис

пс.первое сообщение S / O!

Попытка получить из плоского стола:

enter image description here

до широкого стола:

enter image description here

1 Ответ

0 голосов
/ 29 мая 2018

Вы можете использовать условное агрегирование:

select Cat, Dept,
       sum(case when Period = 'LW' then New else 0 end) as [Net LW],
       sum(case when Period = 'LY' then New else 0 end) as [Net LY],
       sum(case when Period = 'LW' then Gross else 0 end) as [Gross LW],
       sum(case when Period = 'LY' then Gross else 0 end) as [Gross LY],
       sum(case when Period = 'LW' then Profit else 0 end) as [Profit LW],
       sum(case when Period = 'LY' then Profit else 0 end) as [Profit LY],
       sum(case when Period = 'LW' then Units else 0 end) as [Units LW],
       sum(case when Period = 'LY' then Units else 0 end) as [Units LY]
from table t
group by Cat, Dept; 
...