pracuję na dynamicznym zapytania obrotu na stole, który zawiera:SQL Dynamiczny pivot - jak zamówić kolumn
- OID - OrderID
- Size - rozmiar produktu
- BucketNum - w postanowić, że rozmiary powinien iść
- ilość - ile zamówił
kolumna rozmiar zawiera różne rozmiary dependi ng na OID.
Tak, przy użyciu kodu znaleźć here, kładę 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 doskonale z wyjątkiem, że nagłówki kolumn (etykiety rozmiary) nie są w takiej kolejności, w oparciu o kolumny bucketnum. Są w kolejności na podstawie rozmiarów.
Po wypróbowaniu próbowałem opcjonalnego Order By, ale to nie działa.
Jak kontrolować kolejność wyświetlania kolumn?
Dziękuję
Ahhhhh! "MIN (BucketNum)" był tym, czego potrzebowałem !! Dziękuję, dziękuję! – GernBlandston