Dynamiczny przestawny SQL - jak zamawiać kolumny

Pracuję nad dynamicznym zapytaniem przestawnym w tabeli zawierającej:

OID - OrderIDRozmiar - rozmiar produktuBucketNum - kolejność, w jakiej powinny się mieścić rozmiaryilość - ile zamówiono

Kolumna rozmiaru zawiera różne rozmiary w zależności od OID.

Używając znalezionego kodututaj, Złożyłem to razem:

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 )

Działa to świetnie, z wyjątkiem tego, że nagłówki kolumn (etykiety rozmiarów) nie są w kolejności opartej na kolumnie bucketnum. Są w kolejności opartej na rozmiarach.

Próbowałem opcjonalnego Order By po czopie, ale to nie działa.

Jak kontrolować kolejność wyświetlania kolumn?

Dziękuję Ci

questionAnswers(4)

yourAnswerToTheQuestion