SQL Server 2008を使用して、不明な数の行を不明な数の列に変換するためのさまざまなオプション(PIVOT、CROSS JOINなど)を何時間も探していましたが、開始する前よりもさらに迷っています。
基本的に私は3つのテーブルを持っています:
役割
|id| name|
| 1|role1|
| 2|role2|
| 3|role3|
アクション
|id| name |
| 1|action1|
| 2|action2|
| 3|action3|
RoleAction
|roleId| actionId|
| 1 | 1 |
| 1 | 2 |
| 2 | 1 |
| 3 | 2 |
とにかく、の結果を次のLEFT JOIN
ような素敵な「ピボット」テーブルに変換するクエリまたはSPを作成する方法はありますか。
|actionId|actionName|role1|role2|role3|.....|role n|
| 1 | action1 | 1 | 1 | 0 |.....| 0 |
| 2 | action2 | 1 | 0 | 1 |.....| 0 |
| 3 | action3 | 0 | 0 | 0 |.....| 0 |
| . | . | . | . | . |.....| . |
| . | . | . | . | . |.....| . |
| n | action n | 0 | 0 | 0 |.....| 0 |
あなたの助けに感謝します!