Vinzenz Mai: mySQL: Gleichzeitige Selektion mit Aggregatfunktionen

Beitrag lesen

Hallo,

» statt mit Aggregatsfunktionen könntest du es ja mal mit Sortieren, Limit und einer korrelierenden Unterabfrage probieren.

und genau daran hakt es bei mir, insbesondere bei der korrelierenden Unterabfrage, die vermutlich notwendig ist....

und welches Problem hast Du bei der korrelierenden Unterabfrage?

Es ist recht einfach, mit einer korrelierenden Unterabfrage den maximalen Gewinn je Mitarbeiter sowie die dazugehörigen Spalten Monat und Kosten zu ermitteln. Wie Du es benötigst, werden mehrere Datensätze zurückgegeben, wenn der maximale Gewinn mehrfach erzielt wurde.

Ganz analog kannst Du nun mit einer weiteren korrelierenden Unterabfrage aus dem Ergebnis der ersten Abfrage das Minimum der Kosten je Mitarbeiter ermitteln sowie die Werte der dazugehörigen Spalten Monat und Gewinn (ist ja eh' konstant). Erzielte der Mitarbeiter in mehreren Monaten gleichen und maximalen Gewinn bei gleichen und minimalen Kosten (für maximalen Gewinn), so erhältst Du mehr als einen Datensatz, was ja nicht verkehrt wäre.

Du darfst die beiden Bedingungen nicht in der ersten Abfrage zusammenfassen, weil - wie Du bereits in Deinem Ausgangsbeitrag erwähntest - Du nur an den minimalen Kosten beim maximalen Gewinn interessiert bist und nicht an den minimalen Kosten je Mitarbeiter.

Zu korrelierenden Unterabfragen hab' ich mal einen etwas ausführlicheren Beitrag erstellt.

Freundliche Grüße

Vinzenz