SQL Dynamic Pivot - So ordnen Sie Spalten

Ich arbeite an einer dynamischen Pivot-Abfrage für eine Tabelle, die Folgendes enthält:

OID - OrderIDGröße - Größe des ProduktsBucketNum - die Reihenfolge, in der die Größen angegeben werden sollenMenge - wie viele bestellt

Die Größenspalte enthält je nach OID unterschiedliche Größen.

Also, mit dem gefundenen CodeHierIch habe folgendes zusammengestellt:

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 )

Dies funktioniert hervorragend, außer dass die Spaltenüberschriften (die Größenbeschriftungen) nicht in der Reihenfolge sind, die auf der Bucketnum-Spalte basiert. Die Reihenfolge richtet sich nach den Größen.

Ich habe das optionale Order By nach dem Pivot ausprobiert, aber das funktioniert nicht.

Wie steuere ich die Reihenfolge, in der die Spalten angezeigt werden?

Vielen Dank

Antworten auf die Frage(4)

Ihre Antwort auf die Frage