Я работаю над динамическим сводным запросом к таблице, содержащей:
- OID - OrderID
- Размер - размер изделия
- BucketNum - порядок того, что размеры
должен идти
- количество - сколько заказано
Столбец размера содержит различные размеры в зависимости от 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 после разворота, но это не работает.
Как контролировать порядок появления столбцов?
Спасибо