SQLServer2005データベースからいくつかのレコードを取得しています。
データをピボットして、次のような結果を表示したいと思います。
日付とプロセスは無制限にすることができるので、動的ピボットを使用したいと思います。私はいくつかの解決策を試しましたが、それを機能させることができませんでした。
SQLServer2005データベースからいくつかのレコードを取得しています。
データをピボットして、次のような結果を表示したいと思います。
日付とプロセスは無制限にすることができるので、動的ピボットを使用したいと思います。私はいくつかの解決策を試しましたが、それを機能させることができませんでした。
まず、テーブルに無制限の数の列を含めることはできないため、1023プロセスが少ないと想定しています。とにかく、これには動的ピボットを使用する必要があります。
DECLARE @Processes AS NVARCHAR(MAX), @Query AS NVARCHAR(MAX);
SELECT @Processes = STUFF(( SELECT DISTINCT ',' + QUOTENAME(Process)
FROM YourTable
WHERE Process IS NOT NULL
FOR XML PATH(''),
TYPE).value('.', 'NVARCHAR(MAX)'),1,1,'')
SET @Query = '
SELECT *
FROM YourTable T
PIVOT(SUM([Percent]) FOR Process IN ('+@Processes+')) AS PT'
EXEC(@Query)
これがライブデモ付きのsqlfiddleです。