首頁 >資料庫 >mysql教程 >如何使用多個 PIVOT 語句在 SQL Server 中透視多個欄位?

如何使用多個 PIVOT 語句在 SQL Server 中透視多個欄位?

DDD
DDD原創
2025-01-03 16:55:41781瀏覽

How to Pivot Multiple Columns in SQL Server Using Multiple PIVOT Statements?

在 SQL Server 中透視多列

在資料按行和列排列的資料庫表中,有時需要透過切換行來轉換表結構列。這種技術稱為資料透視。

場景:

您有一個範例表,其中包含 Branch、Category、Sales、Stock 和 Target 等欄位。您希望使用「類別」列對錶進行透視,並將其餘列(銷售額、庫存、目標)排列為行。所需的輸出應將類別作為列,並將值作為行。

解決方案:

要對表進行透視,您可以使用多個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」和類別「2」),您可以確保PIVOT 語句正確運作。

中間表(pv1、pv2、pv3)將分別提供 Sales、Stock 和 Target 的透視資料。然後,您可以根據需要聚合 pv3 的結果來對值進行分組和求和。

以上是如何使用多個 PIVOT 語句在 SQL Server 中透視多個欄位?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn