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