sql - 在 SQL Server 中如何透视多列

标签 sql sql-server pivot

这是我的示例表,我想旋转类别列并获取销售、库存和目标作为行

enter image description here

我想要这种形式的示例输出,如下所示,其中类别代替列,列代替行

enter image description here

最佳答案

您必须更改下一个数据透视表的列名称。

喜欢

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
 GO
<小时/>

你现在准备好了......

您可以使用 pv3 的聚合按您需要的列进行求和和分组。

关于sql - 在 SQL Server 中如何透视多列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38067490/

相关文章:

MySQL:仅订购大于特定值的值

MySQL 分组查询

sql-server - SQL server 计划任务发送 Excel 文件的最佳方式?

sql-server - 更新 SQL Server 中的 Select Case 语句 :

jquery - MySql 的 UNION 和 ORDER

sql - 在 Postgres 中批量更新

sql - 如何使用 SQL 在单个表中更新多行?

algorithm - 返回枢轴位置的就地分区

mysql - 数据表 - 从不同的 Laravel 查询创建每一列

mysql - SQL 查询字段作为列