Problem mit einer SQL-Abfrage

Von: , Frage gestellt am Do, 11. Mai 2000

Hallo,

ich habe eine Aufgabenstellung, an der ich mir die Zähne ausbeiße.
Es wäre riesig nett, wenn mir jemand einen Tip geben könnte.

Also:
Ich besitze 3 Tabellen
Tabelle 1: Pilot (Feld: pname)
Tabelle 2: Flugzeug (Feld: fname)
Tabelle 3: Fähigkeiten (Felder: pilot,flugzeug)

In der Tabelle Fähigkeiten ist eine Zuordnung von Pilot und Flugzeug.
Ein Pilot steht in dieser Tabelle, wenn er ein bestimmtes Flugzeug fliegen kann,
genauer gesagt, wenn ich 3 Flugzeuge fliegen kann, stehe ich 3mal in der Fähigkeits-Tabelle (pro Flugzeug 1mal)

Nun heißt die Aufgabenstellung:
"Nenne mir die Piloten, die alle Flugzeuge fliegen können".

Ich bin irgendwie in einer Sackgasse gelandet.

Mit den Befehlen :
"select pilot, count(pilot) from fähigkeiten group by pilot"
und "select count(fname) from flugzeug"
könnte ich die Anzahl der Pilot-Einträge mit der Anzahl der Flugzeuge vergleichen,
aber ich bekomme die nicht in eine einzige Abfrage rein.

Ist dieser Lösungsansatz überhaupt zu gebrauchen ?

Für Eure Hilfe wäre ich Euch dankbar

Gruß
Regine

1 Antworten zu dieser Frage

  1. Antwort von nach 2 Stunden hilfreich
    Re: Heiß, heißer ... bingo!

    Hallo, Ich bin irgendwie in einer Sackgasse
    gelandet.
    Aber nicht doch! Mit den Befehlen :
    "select pilot, count(pilot) from
    fähigkeiten group by pilot"
    und "select count(fname) from
    flugzeug"
    könnte ich die Anzahl der Pilot-Einträge
    mit der Anzahl der Flugzeuge
    vergleichen,
    aber ich bekomme die nicht in eine
    einzige Abfrage rein.
    OK, ganz heiß... Ist dieser Lösungsansatz überhaupt zu
    gebrauchen ?
    Ja, Du bist ganz nahe dran:

    select pilot from fähigkeiten
    group by pilot
    having count(*) = (select count(*) from flugzeug);

    Gruß

    J.

Keine passende Antwort gefunden? Jetzt eigene Frage stellen!