Sql Abfrage: Mitarbeiter mit höchster Zulage?
Hi zusammen, ich brauche für eine kleine SQL abfrage eure hilfe.
gefordert wird die Mitarbeiter herauszufinden, die die höchste zulage erhalten im Vergleich zu den Mitarbeitern mit gleichem Gehalt
A: 1000€ Gehalt 50€ Zulage
B: 1000€ Gehalt 20€ Zulage
C: 500€ Gehalt 70€ Zulage
D: 500€ Gehalt 120€ Zulage
jetzt brauch ich eine Abfrage die mir A und D ausgibt.
danke für eure Hilfe :)
3 Antworten
Du verwendest max als Aggregat in Kombination mit group by beim Gehalt, um die höchste Zulage je Gehalt zu ermitteln.
Ohne es zu testen, sowas ala:
select ma,max(zulage) from table group by gehalt;
Das kannste dann nach Bedarf noch anpassen oder verfeinern.
Mist, ich hab da noch nen Denkfehler drin, der Mitarbeiter ist nicht Teil des Aggregats.
Hatte die gleiche Abfrage, aber die ist leider falsch…
So könnte das aussehen:
SELECT Mitarbeiter.* FROM (SELECT Gehalt, MAX(Zulage) FROM Mitarbeiter GROUP BY Gehalt) Zulage JOIN Mitarbeiter ON Mitarbeiter.Gehalt = Zulage.Gehalt AND Mitarbeiter.Zulage = Zulage.Zulage;
Gib zuerst die Mitarbeiter aus den Gehalt aus das sie verdienen 500 oder 100€ und dann Sortierst du es nach der Zulage
Das sind nur Beispieledaten. In wahrheit ist die Datenbank viel größer.
Ich will einen Befehl mit dem man sozusagen für jedes Gehalt den Mitarbeiter bekommt der für das jeweilige Gehalt die höchste zulage erhält :)