Pivote dinámico de SQL - cómo ordenar columnas
Estoy trabajando en una consulta dinámica en una tabla que contiene:
OID - OrderIDTamaño - tamaño del productoBucketNum - el orden en que deben ir los tamañoscantidad - cuántos ordenóLa columna de tamaño contiene diferentes tamaños dependiendo del OID.
Entonces, usando el código encontradoaquí, Puse esto juntos
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 )
Esto funciona muy bien, excepto que los encabezados de columna (las etiquetas de tamaño) no están en el orden basado en la columna de bucketnum. Están en el orden basado en los tamaños.
He intentado el pedido opcional después del pivote, pero eso no está funcionando.
¿Cómo controlo el orden en que aparecen las columnas?
Gracias