Laden...

TOP innerhalb von UNION verwenden

Erstellt von Neokil vor 10 Jahren Letzter Beitrag vor 10 Jahren 392 Views
Neokil Themenstarter:in
206 Beiträge seit 2008
vor 10 Jahren
TOP innerhalb von UNION verwenden

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

1.696 Beiträge seit 2006
vor 10 Jahren

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

Ich bin verantwortlich für das, was ich sage, nicht für das, was du verstehst.

**:::

Neokil Themenstarter:in
206 Beiträge seit 2008
vor 10 Jahren

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...