Hallo,
ich habe eine Tabelle (in einer T-SQL-Datenbank) mit Kosten, die nach Monaten aufgestellt sind.
Jetzt möchte ich für ein Diagramm die 10 höchsten Kosten für 3 Monate haben:
SELECT TOP 10 *
FROM Kosten
WHERE Monat = 1
ORDER BY Value
UNION
SELECT TOP 10 *
FROM Kosten
WHERE Monat = 2
ORDER BY Value
UNION
SELECT TOP 10 *
FROM Kosten
WHERE Monat = 3
ORDER BY Value
Jetzt geht das so aber nicht, da ich ein ORDER BY nicht in Unterabfragen benutzen kann.
Wenn ich es aber weglasse, kann ich ja nicht Steuern, wie die TOP 10 ausgewählt werden oder?
Wie mache ich das richtig?
Gruß
Neokil
Hallo,
probiere mal so
select * from (SELECT TOP 10 * FROM Kosten WHERE Monat = 1 ORDER BY Value) as A
UNION
select * from (SELECT TOP 10 * FROM Kosten WHERE Monat = 2 ORDER BY Value) as B
...
Grüße
**:::
hmm...
genau so habe ich es auch probiert.
Nach einigem probieren ist mit aufgefallen, dass die Lösung seltsamerweise zwar auf dem Report-Server, aber nicht im Management-Studio funktioniert. Und dort teste ich eigentlich die Scripte...