首頁 > 資料庫 > mysql教程 > 如何在 SQL Server 中同時透視多個欄位?

如何在 SQL Server 中同時透視多個欄位?

Susan Sarandon
發布: 2024-12-31 09:29:09
原創
944 人瀏覽過

How to Pivot Multiple Columns Simultaneously in SQL Server?

在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
登入後複製

注意:

  • 第一個子查詢為具有Category1 和 Category2 的 Category 欄位分配新名稱,為多個透視做好準備。
  • 後續的透視操作使用這些擴充列名稱為每個欄位建立行類別。
  • 聚合應用於列以匯總每個類別的值。

此外,您可以根據需要在 pv3 上使用聚合函數來進一步匯總資料。

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

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板