Dynamic Pivot SQL - como ordenar colunas

Estou trabalhando em uma consulta dinâmica dinâmica em uma tabela que contém:

OID - OrderIDTamanho - tamanho do produtoBucketNum - a ordem em que os tamanhos devem irquantidade - quantos pedidos

A coluna de tamanho contém tamanhos diferentes, dependendo do OID.

Então, usando o código encontradoAqui, Eu coloquei isso junto:

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 )

Isso funciona muito bem, exceto que os cabeçalhos de coluna (os rótulos de tamanhos) não estão na ordem com base na coluna bucketnum. Os estão na ordem com base nos tamanhos.

Eu tentei o Order By opcional após o pivô, mas isso não está funcionando.

Como faço para controlar a ordem em que as colunas aparecem?

Obrigado

questionAnswers(4)

yourAnswerToTheQuestion