none
T-SQLのPIVOTについて RRS feed

  • 質問

  • 環境:Sqlserver2005

     

    お世話になります。

     

    初歩的な質問で申し訳ございませんが、T-SQLのPIVOTについてご教示ください。
    以下のような構成で、<ピボット表示結果>のような値を得たいのですが
    ●●●のところにはいる演算子?がわかりません。
    ちなみに●●●にCOUNTをいれると動くのですが、Countしたいわけではなく、
    [P規格名称] (nvarchar型)を表示したいのです。

     

    宜しくお願い致します。

     

    <TABLE1>
     ([管理コード] as nvarchar,[P識別番号] as int,[P規格区分] as int)
     ________________________________________
     'aaa',1,3
     'aaa',2,7
     'aaa',3,34
     'bbb',1,7
     'bbb',2,65
     'bbb',3,3

     

     

    <TABLE2>
     ([P規格区分] as int,[P規格名称] as nvarchar)
     ________________________________________
     3,'PName3'
     7,'PName7'
     34,'PName34'
     65,'PName65'

     

     

    <ピボット表示結果>

     行:TABLE1.[管理コード](ユニークにしたい)
     列:TABLE1.[P識別番号]( [1],[2],[3])
     値:TABLE2.[P規格名称]

     

     [管理コード],[1],[2],[3]
     ________________________________________
     'aaa','PName3','PName7','PName34'
     'bbb','PName7','PName65','PName3'

     


    <T-SQL ピボット記述>

    SELECT [管理コード],[1],[2],[3]
    FROM(SELECT TABLE1.[管理コード],TABLE1.[P識別番号],TABLE2.[P規格名称]
          FROM TABLE2 INNER JOIN TABLE1 ON TABLE2.P規格区分 = TABLE1.P規格区分) T
    PIVOT(●●●([P規格名称]) FOR [P識別番号] IN ( [1],[2],[3])) AS PIVOT_TABLE;

    ※ちなみに●●●にCOUNTをいれると動く。

     

     

    2008年10月9日 3:31

回答

すべての返信