Zitat von
JumpFrog:
wenn ich mein Beispiel Konkret auf die dazugehörige Datenbank anwende kommt folgendes Raus.
Von den 20 Mitarbeitern wurden 18 herrausgefiltert die 2 die nicht nicht angeziegt werden haben ein Gehalt von 1.850,50€ und 1875,00€ .
Wieso bekomm ich nun von der Abfrage alle anderen auser die 2 Angezeigt?
Weil die Unterabfrage
Zitat:
SELECT Gehalt FROM Mitarb WHERE abtnr'Kon1'
in jeder Zeile ein Gehalt von mindestens 1.875,00 € liefert.
Du fragst ja ab:
SQL-Code:
SELECT Name,Gehalt
FROM Mitarb
WHERE Gehalt > ANY( SELECT Gehalt FROM Mitarb WHERE abtnr'Kon1')
Also in Deutsch:
Liefere mir Namen und Gehalt aller Mitarbeiter deren Gehalt größer ist als irgend eines (ANY) der Gehälter eines Mitarbeiters aus der Abteilung Kon1.
Das bedeutet, sobald in der Unterabfrage ein Gehalt gefunden wurde, das kleiner ist als das der abgefragten Zeile, wird diese ausgegeben. Andersrum: Für die zwei Zeilen (1850 und 1875) wurde eben KEINE Zeile in der Unterabfrage gefunden, die kleiner war. Also haben alle Mitarbeiter aus Kon1 mindestens ein Gehalt von 1.875 €