Ich bin auf einem Tisch auf einer dynamischen Dreh Abfrage arbeiten, die enthält:SQL Dynamische Pivot - wie man Spalten bestellen
- OID - OrderID
- Size - Größe des Produkts
- BucketNum - die anordnen, dass die Größen
- Menge gehen sollte - wie viele bestellt
Die Größe Spalte enthält verschiedene Größen abhängi ng auf die OID.
So fand den Code mit here, ich dies zusammen:
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 gut, außer dass die Spaltenüberschriften (die Größen Etiketten) sind nicht in der Reihenfolge auf der bucketnum Spalte basiert. Die sind in der Reihenfolge basierend auf den Größen.
Ich habe die optionale Bestellung von nach dem Pivot versucht, aber das funktioniert nicht.
Wie kontrolliere ich die Reihenfolge, in der die Spalten angezeigt werden?
Danke
Ahhhhh! Das 'MIN (BucketNum)' Bit war was ich brauchte !! Danke, danke! – GernBlandston