Unten sind die Spalten finden ich in der Tabelle mit dem Namen TEMP2 habe,Wie oben 6 Spalten aus der Tabelle
[ID],[Week1], [Week2],[Week3],[Week4],[Week5],
[Week6],[Week7],[Week8],[Week9], [Week10],
[Week11],[Week12],[Week13], [Week14],[Week15],
[Week16],[Week17], [Week18],[Week19],[Week20],
[Week21], [Week22],[Week23],[Week24],[Week25], [Week26]
ich die Top-6 Datensätze aus jeder Zeile und Anzeige finden möge.
Unten ist die Abfrage, die ich für das selbe versuchte und das erwartete Ergebnis nicht holt. Was mache ich hier falsch?
SELECT
id, [1], [2], [3],[4], [5], [6]
FROM
(SELECT
id, Val, rn
FROM
(SELECT id, Val, Col,
ROW_NUMBER()OVER (PARTITION BY id ORDER BY Val)
AS rn
FROM
TEMP2
UNPIVOT
(Val FOR Col IN ([Week1],
[Week2],[Week3],[Week4],[Week5],[Week6],[Week7],[Week8],[Week9],
[Week10],[Week11],[Week12],[Week13],[Week14],[Week15],[Week16],[Week17],
[Week18],[Week19],[Week20],[Week21],[Week22],[Week23],[Week24],[Week25],
[Week26]))AS unpvt) AS t
WHERE
t.rn <= 6) AS src
PIVOT
(MAX(Val) FOR rn IN ([1], [2], [3],[4], [5], [6])) AS pvt
Ich bin mit SQL Server 2008.
Können Sie ein Beispiel für die Ausgabe von Ihnen erwartet addieren und das Ergebnis Sie oben mit Ihrer Anfrage bekommen? – rbr94
'PARTITION DURCH ID ORDER BY Val DESC', sicherlich, wenn Sie die Zahlen 1-6 zu den * höchsten * Werten von' Val' anstatt der niedrigsten zuweisen möchten. –
Die Person, die unten gewählt hat, kann mir den Grund dafür erklären? – Developer