Announcement

Collapse
No announcement yet.

GROUP BY mit zusätzliches Ausgabe

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • GROUP BY mit zusätzliches Ausgabe

    Guten Morgen,

    Ich habe folgende tabelle:
    http://img293.imageshack.us/img293/1958/tabelleu.png
    Aufgabe: Erstellen sie eine Liste aller Professoren mit der Anzahl ihrer Assistenten.

    Ich bin zwar in der Lage mit einem group by die Liste auszugeben, allerdings nur mit den Professoren die einen Assistenten haben die keinen haben, werden bei mir nicht angezeigt

    SELECT p.Name, count( a.Boss ) AS Anzahl FROM Professoren p, Assistenten a WHERE p.PersNr = a.Boss GROUP BY p.Name

    Wie kann ich zusätzlich auch die professoren anzeigen lassen, die keinen assistenten haben?

    Vielen Dank

    Grüße
    proark

  • #2
    Der Trick ist ein LEFT OUTER JOIN

    [highlight=sql]
    SELECT p.PersNr, COUNT(a.PersNr) AS Anzahl
    FROM Professoren p
    LEFT OUTER JOIN Assistenten a ON a.Boss = p.PersNr
    GROUP BY p.PersNr
    [/highlight]

    (Ich habe angenommen dass Assistenten eine PersNr Spalte als PK hat - kann leider das Bild in der Arbeit nicht aufmachen - Bilder können übrigens auch direkt ins Forum hochgeladen werden)

    Ausserdem gruppiert man nicht nach Name, sondern nach der PersNr. Sonst gruppiert er nämlich auch 2 unterschiedliche Professoren die den gleichen Namen haben, aber eine unterschiedliche PersNr.

    Comment


    • #3
      Du hast alles richtig angenommen, vielen Dank für die schnelle Antwort

      Comment


      • #4
        Hier das Beispiel mit der Ausgabe des Namens für die Professoren.

        Code:
        SELECT p.PersNr, 
        (SELECT name FROM Professoren pf WHERE pf.PersNr = p.PersNr) AS Professorenname, 
        COUNT(a.PersNr) AS Anzahl
        FROM Professoren p LEFT OUTER JOIN Assistenten a ON a.Boss = p.PersNr
        GROUP BY p.PersNr;
        kuemmelchen

        Comment

        Working...
        X