2

アプリケーションのレポートとしてセキュリティ マトリックスを生成しようとしています。

この質問を見ると、それは私が望んでいることとほぼ同じです。

SQL Server: PIVOTing 文字列データの例

解決方法を変更しました

SELECT Action,
   MAX( CASE data WHEN 'View' THEN data ELSE '' END ) ViewCol, 
   MAX( CASE data WHEN 'Edit' THEN data ELSE '' END ) EditCol
FROM t
GROUP BY Action

私のソリューションに適応するために。

SELECT RefRoleId ,
       MAX( CASE Permission WHEN 'AdministerErrors' THEN 'X' ELSE '' END ) 'Administer Errors'
 FROM RolePermission
 GROUP BY RefRoleId

ただし、私が見ることができる問題は、自分が持っている権限を正確に把握し、それらを列としてクエリにハードコーディングする必要があることです。私は新しいものが必要だろう

MAX( CASE Permission WHEN 'AdministerErrors' THEN 'X' ELSE '' END ) '管理エラー'

すべての許可のために。

クエリを介して SQL クエリに表示したい列を追加する方法はありますか?

4

1 に答える 1

1

はい、テーブル内のデータに基づいて、必要な数の列を自動的に追加して、ピボットを動的に構築できます。詳細な手順: http://www.simple-talk.com/community/blogs/andras/archive/2007/09/14/37265.aspx

この記事では SQL Server 2008 については触れていませんが、そのバージョンでも動作します。

于 2012-05-23T03:57:50.557 に答える