TSQL Pivot 4值列

TSQL Pivot 4值列,sql,sql-server,sql-server-2008,tsql,pivot,Sql,Sql Server,Sql Server 2008,Tsql,Pivot,在SQLServer2008中,我尝试使用句点列将下面的表格式“透视”为宽格式(在实际数据中有5个不同的句点) 我已经搜索过了,但还没有找到解决方案。我已经提到了,但无法将逻辑转换为>2个值列-这是我需要的 有什么想法吗?你可能已经猜到我不是SQL专家了。使用SQLServer2008 谢谢, 克里斯 附:第一个S/O柱 试图从一张平桌上爬起来: 在一张宽大的桌子上: 您可以使用条件聚合: select Cat, Dept, sum(case when Period = 'LW'

在SQLServer2008中,我尝试使用句点列将下面的表格式“透视”为宽格式(在实际数据中有5个不同的句点)

我已经搜索过了,但还没有找到解决方案。我已经提到了,但无法将逻辑转换为>2个值列-这是我需要的

有什么想法吗?你可能已经猜到我不是SQL专家了。使用SQLServer2008

谢谢, 克里斯

附:第一个S/O柱

试图从一张平桌上爬起来:

在一张宽大的桌子上:

您可以使用条件聚合:

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; 

啊,真的那么简单吗?!谢谢Yogesh-我现在就试试看,如果有任何问题,我会回来的。唯一需要注意的是空聚合。可能需要将else 0添加到case语句中,以确保DB中的NULL设置不会影响您的计算。大多数情况下,这不会发生,但总比安全好sorry@SFrejofsky. . . 这很重要,我忘了。