Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Pivot Berbilang Lajur Secara serentak dalam SQL Server?

Bagaimana untuk Pivot Berbilang Lajur Secara serentak dalam SQL Server?

Susan Sarandon
Lepaskan: 2024-12-31 09:29:09
asal
926 orang telah melayarinya

How to Pivot Multiple Columns Simultaneously in SQL Server?

Mengasingkan Berbilang Lajur dalam Pelayan SQL

Mengasing ialah teknik transformasi dalam SQL yang membenarkan menyusun data daripada lajur ke dalam baris. Dalam konteks ini, anda menyasarkan untuk memutarkan lajur kategori ke dalam baris dan memaparkan jualan, stok dan nilai sasaran untuk setiap kategori.

Sampel Input:

Branch  Category  Sales  Stock  Target
Branch1 Panel     100    20     30
Branch1 AC        120    30     40
Branch1 Ref       150    40     50
Salin selepas log masuk

Diingini Output:

Branch Panel AC Ref
Branch1 100 120 150
Branch1 20 30 40
Branch1 30 40 50

Penyelesaian:

Untuk mencapai output yang diingini, anda perlu melakukan berbilang operasi pivoting:

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
Salin selepas log masuk

Nota:

  • Subquery pertama memberikan nama baharu pada lajur Kategori dengan Kategori1 dan Kategori2 untuk menyediakan berbilang pangsi.
  • Operasi pangsi seterusnya menggunakan nama lajur lanjutan ini untuk membuat baris bagi setiap kategori.
  • Pengagregatan digunakan pada lajur untuk menjumlahkan nilai bagi setiap satu kategori.

Selain itu, anda boleh menggunakan fungsi agregat pada pv3 untuk meringkaskan lagi data mengikut keperluan.

Atas ialah kandungan terperinci Bagaimana untuk Pivot Berbilang Lajur Secara serentak dalam SQL Server?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan