ピボットテーブルを使って行方向に並んでいるデータを列方向に並び替える方法

  SQL Server で、行方向または列方向に並んでいるデータを列方向または行方向に並び替えるには、ピボットテーブルを使って行います。
 ピボットテーブルとは、行・列同数で、対角線上のみ1でそのた全て0のテーブルです。
【使い方】

 元となるデータとピボットテーブルを連結して、集計関数「sum」で合計する。
 A     P1 P2 P3    B1 B2 B3            B1 B2 B3    P1 P2 P3         ← 列名
|1  0  0| |a1|                  |1  0  0|  |a1|
|0  1  0|×|a2| = |a1 a2 a3|  または  |a1 a2 a3|×|0  1  0| = |a2|
|0  0  1| |a3|                  |0  0  1|  |a3|

1.行方向を列方向に並び替え
select sum(P1*A) as B1, sum(P2*A) as B2, sum(P3*A) as B3 from ?????

2.列方向を行方向に並び替え
select sum(B1*P1)+sum(B2*P2)+sum(B3*P3) from ???
【注意】
戻る