在 SQL Server 中透视多个列
透视是 SQL 中的一种转换技术,允许将数据从列排列到行中。在此上下文中,您的目标是将类别列转换为行并显示每个类别的销售额、库存和目标值。
示例输入:
Branch Category Sales Stock Target Branch1 Panel 100 20 30 Branch1 AC 120 30 40 Branch1 Ref 150 40 50
想要的输出:
Branch | Panel | AC | Ref |
---|---|---|---|
Branch1 | 100 | 120 | 150 |
Branch1 | 20 | 30 | 40 |
Branch1 | 30 | 40 | 50 |
解决方案:
要获得想要的输出,需要执行多次旋转操作:
SELECT * FROM ( SELECT Branch, Category, Category+'1' As Category1, Category+'2' As Category2, Sales, Stock, Target FROM TblPivot ) AS P -- For Sales PIVOT ( SUM(Sales) FOR Category IN ([Panel], [AC], [Ref]) ) AS pv1 -- For Stock PIVOT ( SUM(Stock) FOR Category1 IN ([Panel1], [AC1], [Ref1]) ) AS pv2 -- For Target PIVOT ( SUM(Target) FOR Category2 IN ([Panel2], [AC2], [Ref2]) ) AS pv3
注意:
此外,您可以根据需要在 pv3 上使用聚合函数来进一步汇总数据。
以上是如何在 SQL Server 中同时透视多个列?的详细内容。更多信息请关注PHP中文网其他相关文章!