ダイナミックパースペクティブクエリを構築するために、最初に2つの変数を定義します。
カテゴリを保存するには、最終クエリを保存するために使用されます。
DECLARE @cols AS NVARCHAR(MAX), @query AS NVARCHAR(MAX);
次に、コンマを使用してさまざまなカテゴリを接続して@cols
変数を構築して、それらが二重の引用符に含まれていることを確認します。 @query
SET @cols = STUFF((SELECT distinct ',' + QUOTENAME(c.category) FROM temp c FOR XML PATH(''), TYPE ).value('.', 'NVARCHAR(MAX)') ,1,1,'')
に割り当てます。クエリは、最初に日付列とすべてのカテゴリを列として選択します。次に、ピボットを使用してデータを回転させ、日付列をタイトルとして、カテゴリをタイトルとして使用します。 @cols
set @query = 'SELECT date, ' + @cols + ' from ( select date , amount , category from temp ) x pivot ( max(amount) for category in (' + @cols + ') ) p '
@query
以上が動的クエリを使用して SQL Server でデータを動的にピボットする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。