Sql Abfrage: Mitarbeiter mit höchster Zulage?

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.

ichlernesql 
Fragesteller
 20.02.2023, 18:49

Hatte die gleiche Abfrage, aber die ist leider falsch…

0

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

ichlernesql 
Fragesteller
 20.02.2023, 17:57

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 :)

0