SQL Hilfe bei Funktion?

...komplette Frage anzeigen

3 Antworten

mit der ersten Anfrage erhältst du den Maximalen Umsatz aller Lehrer aber nicht den namen der Lehrer mit diesem Umsatz

Im zweiten Beispiel nimmst du die gleiche Anfrage als Unteranfrage und vergleichst das dann mit dem Umsatz von allen Lehrern und erhältst am Ende den/die Namen der Lehrer die diesen maximalen Umsatz haben

Verstanden?

Bei der Abfrage nach dem maximalen Gehalt gibt es nur einen Wert, also eine Zeile in der Ausgabe. Wenn ich noch den Lehrer dazu haben will, geht das gar nicht so einfach, weil es auch mehrere Lehrer geben kann, die das maximale Gehalt bekommen. Aus der Sicht der Datenbank geht das gar nicht so. Das ist auch der Grund, warum in der Aufgabe der Lehrer angegeben werden soll: Man soll sich Gedanken machen, wie man die Aufgabe ohne den Konflikt mit der Datenbank hinbekommt.

Eine Lösung, die die Datenbank auch durchführen kann:

SELECT lehrer, gehalt FROM tabelle 
WHERE gehalt = (SELECT MAX(gehalt)

Der Subselect ermittelt das maximale Gehalt, der Select zeigt alle Lehrer an, die dieses Gehalt bekommen.

Das Ergebnis sieht dann z.B. so aus, wenn das für 2 Lehrer zutrifft:

Lehrer        Gehalt

Müller         4321,00

Meier          4321,00



SQL habe ich am schnellsten Verstanden wenn ich sowas an meiner Beispieldatenbank ausprobiert habe oder mir eine Testumgebung erschaffen habe.

Die Aufgabe ergibt zwar keinen Sinn, aber der Unterschied müsste sein, dass deine Abfrage das Ergebnis an sich also den Maximalwert liefert. Die Lösung eine Auflistung aller Lehrer liefert, die den maximalen Wert verdienen.

Hoffe das war verständlich. Mein Tipp: Ausprobieren.

Was möchtest Du wissen?