SQL Server 2005を使用しているため、コードは次のとおりです。
DECLARE @cols VARCHAR(1000)
DECLARE @sqlquery VARCHAR(2000)
SELECT @cols = STUFF(( SELECT distinct ',' + QuoteName([Name1])
FROM myTable FOR XML PATH('') ), 1, 1, '')
SET @sqlquery = 'SELECT * FROM
(SELECT Name2, Name1, Value
FROM myTable ) base
PIVOT (Sum(Value) FOR [Name1]
IN (' + @cols + ')) AS finalpivot'
EXECUTE ( @sqlquery )
これは、ステータスがいくつあっても機能します。 PIVOT
を使用してクエリを動的にアセンブルします 。動的列を使用してPIVOTを実行できる唯一の方法は、クエリを動的にアセンブルすることです。これは、SQLServerで実行できます。
その他の例:
- T-SQLのピボットデータ
- SQL Serverを使用して単一のテーブルに結合してサマリーを作成するにはどうすればよいですか?
- https://stackoverflow.com/q/8248059/570191