首页 >数据库 >mysql教程 >如何在 SQL Server 中同时透视多个列(销售额、库存、目标)?

如何在 SQL Server 中同时透视多个列(销售额、库存、目标)?

Susan Sarandon
Susan Sarandon原创
2025-01-02 13:40:38143浏览

How to Pivot Multiple Columns (Sales, Stock, Target) Simultaneously in SQL Server?

如何在 SQL Server 中透视多个列

问题:

假设您有一个表格,其中的列表示项目类别(例如面板、AC、参考)和数据,例如销售额、库存和目标。您希望将此数据转换为透视格式,其中类别成为行,列保存每个类别(销售额、库存、目标)的相应数据。

解决方案:

为了实现这一点,您可以在 SQL 中使用多个 Pivot 语句服务器:

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

解释:

  1. 内部SELECT:从原始表中获取必要的数据,包括分支名称和未经清理的类别名称。
  2. 列重命名:使用后缀(“1”和“2”)重命名类别列,以方便后续透视。
  3. 第一个透视(pv1):销售列的透视,分组按类别划分的数据。
  4. 第二个数据透视点(pv2): 使用新重命名的类别列(例如,Panel1)对股票列进行透视。
  5. 第三个透视 (pv3): 使用新命名的类别列对目标列进行透视重命名类别列(例如,Panel2)。

一旦旋转完成后,您可以根据需要聚合结果或执行进一步的数据操作。

以上是如何在 SQL Server 中同时透视多个列(销售额、库存、目标)?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn