次を含むテーブルで動的ピボット クエリに取り組んでいます。
- OID - オーダーID
- サイズ - 商品のサイズ
- BucketNum - サイズの順序
- 数量 - 注文数
size 列には、OID に応じて異なるサイズが含まれます。
したがって、ここにあるコードを使用して、これをまとめました。
DECLARE @listCol VARCHAR(2000)
DECLARE @query VARCHAR(4000)
SELECT @listCol = STUFF(( SELECT distinct '], [' + [size]
FROM #t
FOR
XML PATH('')
), 1, 2, '') + ']'
SET @query = 'SELECT * FROM
(SELECT OID, [size], [quantity]
FROM #t
) src
PIVOT (SUM(quantity) FOR Size
IN (' + @listCol + ')) AS pvt'
EXECUTE ( @query )
これは、列ヘッダー (サイズ ラベル) が bucketnum 列に基づく順序になっていないことを除いて、うまく機能します。サイズ順に並んでいます。
ピボット後にオプションの Order By を試しましたが、うまくいきません。
列が表示される順序を制御するにはどうすればよいですか?
ありがとうございました