web-dev-qa-db-ja.com

SQL Serverで複数の列をピボットする方法

これは私のサンプルテーブルです。カテゴリ列をピボットして、売上、在庫、ターゲットを行として取得します

enter image description here

以下に示すように、このフォームのサンプル出力が必要です。ここで、カテゴリは列の代わりに、列は行の代わりに使用されます。

enter image description here

4
Saad

以下はうまくいくはずです、

select * FROM
(
  SELECT 
   Branch,
   Category,
   Sales, 
   Stock, 
   Target
  FROM Table1
 ) AS P
 unpivot
 (
 [Value] FOR [OutPut] IN (sales,stock,[target])
 )unpvt
 pivot
 (
 max([Value]) for  Category in (Panel,AC,Ref) 
 )pvt
order by Branch Desc
1
suraj thakur