je travaille sur une requête de pivot dynamique sur une table qui contient:SQL dynamique Pivot - comment commander des colonnes
-
OID
- - OrderID
- Taille - Taille du produit
- BucketNum - la ordonner que les tailles devraient aller
- quantité - combien commandé
La colonne de taille contient différentes tailles dependi ng sur l'OID.
Ainsi, en utilisant le code trouvé here, je mets cela ensemble:
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)
Cela fonctionne très bien, sauf que les en-têtes de colonne (les étiquettes de tailles) ne sont pas dans l'ordre en fonction de la colonne bucketnum. Les sont dans l'ordre en fonction des tailles.
J'ai essayé le tri optionnel By après le pivot, mais cela ne fonctionne pas.
Comment contrôler l'ordre dans lequel les colonnes apparaissent?
Merci
Ahhhhh! Le bit 'MIN (BucketNum)' était ce dont j'avais besoin !! Merci, merci! – GernBlandston