我已根据您编辑的SQL语句完成了我的工作。您只需要对Department和Type进行分组,然后聚合透视值
select case when [REDACTED] END as Dept, Type, max([2019W01]) as [2019W01], max([2019W02]) as [2019W02], max([2019W03]) as [2019W03], max([2019W04]) as [2019W04]
from ( select
ltrim(rtrim(Plant)) as Plant
,cast(ltrim(rtrim(WeekNo)) as varchar) as WeekNo
,substring(cast(ltrim(rtrim(WeekNo)) as [REDACTED]
from [REDACTED] ) as a
unpivot
(Value for Type in (A,B,C)) as sq
pivot (
min(Value)
for WeekNo in ([2019W01], [2019W02], [2019W03], [2019W04])
) as Pvt
group by Dept, Type
在转动数据时,这对我来说似乎更加清晰。您只需要在一个位置进行复制 - 粘贴 - 替换,并定义对列进行分组的方式。
SELECT Dept, Type,
MIN(CASE WHEN Weekno = '2019W01' THEN [value] END),
MIN(CASE WHEN Weekno = '2019W02' THEN [value] END),
MIN(CASE WHEN Weekno = '2019W03' THEN [value] END),
MIN(CASE WHEN Weekno = '2019W04' THEN [value] END),
MIN(CASE WHEN Weekno = '2019W05' THEN [value] END),
MIN(CASE WHEN Weekno = '2019W06' THEN [value] END)
FROM SomeTable
GROUP BY Dept, Type
ORDER BY Dept, Type;