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
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
Nota:
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!