Statement zur paarweisen Ausgabe

Hallo zusammen,

ich habe zwei Abfragen die ich gerne kombinieren möchte und dabei gerne zwei Bedingungen hätte.
Sie Ausgabe soll absteigend und paarweise erfolgen.
zur Veranschaulichung:
Es handelt eingentlich um zwei Abfragen auf der gleichen Tabelle, nur um verschiedenen Zeiträume.
Sagen wir es handelt sich um die Anzahl der verkauften Autos in bestimmten Zeiträumen. Dabei ist jede Automarke in einer Abfrage nur einmal vorhanden. Um diese zwei Abfragen zu vergleichen würde ich gerne bei Abfragen zusammenführen und absteigend nach Anzahl verkaufter Autos sortieren. Das Ding dabei: wenn jetzt zum Beispiel Marke 1 in dem einen Zeitraum die meisten Autos verkauft hat und in der Tabelle ganz oben steht, soll die gleiche Marke aus der zweiten Abfrage in der Spalte darunter stehen.

in HQL:
Code:
from Autotabelle au where au.zeitrauabfrage.id=1 order by au.anzahl desc
das gleiche für die zweite Abfrage
Code:
from Autotabelle au where au.zeitrauabfrage.id=2 order by au.anzahl desc

kombiniert dann in etwa so
Code:
from Autotabelle au where au.zeitrauabfrage.id=1 or au.zeitraumabfrage.id=2 order by au.anzahl desc

Hierbei werden allerdings alle Ausgaben nur nach Anzahl absteigend sortiert, die gleiche Marke sollte jedoch in der Tabelle direkt darunter erscheinen. Ist das irgendwie möglich, oder geht das leider nicht.
Ich hoffe ich konnte mich irgendwie verständlich ausdrücken,
Wäre super wenn mir jemand weiterhelfen könnte.

Gruß
Andreas
 
Hi,

ich weiß nicht, ob ich Dich richtig verstehe...

SQL:
from Autotabelle au 
   where au.zeitrauabfrage.id=1 
         or au.zeitraumabfrage.id=2 
   order by au.marke asc,
            au.anzahl desc

Meinst Du das?

LG
 
Zuletzt bearbeitet von einem Moderator:
Hallo kuddeldaddeldu,

danke für deinen Vorschlag.
Die Gruppierung funktionniert einwandfrei, nur das Problem ist die absteigende Sortierung der über alle Ergebnisse hinweg, so dass die meistverkaufte Automarke ganz oben steht gefolgt von der gleichen Automarke, dann die zweitmeistverkaufte gefolgt....., drittmeistverkaufte etc. Das Problem dabei ist, das einmal das meistverkaufte aus der einen Ergebnissmenge stammen kann, einamal aus der anderen.
Vielleicht ist das, was ich da will gar nicht über SQL möglich, aber ich würde mich gerne überraschen lassen....
 
Hi,

da würde mir jetzt spontan nur einfallen, das in einem Subselect vorzusortieren, versuch's mal so:

SQL:
   SELECT * FROM 
      (SELECT * FROM Autotabelle au
         WHERE au.zeitrauabfrage.id=1
         OR au.zeitraumabfrage.id=2
         ORDER BY au.preis DESC) as e
      ORDER BY e.marke ASC,
            e.preis DESC

LG
 
Zuletzt bearbeitet von einem Moderator:
Zurück