/* 4.5 */
/* 
    Mitarbeiter - Projekt Kombinationen sind nach Join einzigartig, da Join die ersten Einträge verbindet
    und die restlichen gleichen Kombinationen verwirft 
    (z.B. 100 -> 346 kriegt nur den ersten Eintrag, alle weiteren Erscheinungen dieser Kombination
    werden verworfen)
    Ergänzung: Mnr + ProjNr -> Composite primary key -> Als einzigartig definiert in der Tabelle
*/
SELECT Projekt.Bezeichnung AS Bezeichnung, COUNT(ProjektMitarbeiter.Mnr) AS "# Mitarbeiter" FROM Projekt
    INNER JOIN ProjektMitarbeiter ON Projekt.ProjNr = ProjektMitarbeiter.ProjNr
    GROUP BY Projekt.ProjNr
    ORDER BY COUNT(ProjektMitarbeiter.Mnr) DESC;

/* 4.6 */
SELECT 
    Mitarbeiter.Name AS Name, 
    Mitarbeiter.Vorname AS Vorname, 
    ProjektMitarbeiter.Zeitanteil AS Stunden,
    Projekt.Bezeichnung AS Bezeichnung
FROM Mitarbeiter
    INNER JOIN ProjektMitarbeiter ON Mitarbeiter.Mnr = ProjektMitarbeiter.Mnr
    LEFT JOIN Projekt ON Projekt.ProjNr = ProjektMitarbeiter.ProjNr
ORDER BY Mitarbeiter.Name, Mitarbeiter.Vorname;

/* 4.7 */
SELECT 
    Mitarbeiter.Name AS Name, 
    Mitarbeiter.Vorname AS Vorname,
    COUNT(Kind.Mnr) AS "# Kinder"
FROM Projekt
    INNER JOIN Mitarbeiter ON Mitarbeiter.Mnr = Projekt.Leiter
    LEFT JOIN Kind ON Mitarbeiter.Mnr = Kind.Mnr
    GROUP BY Mitarbeiter.Mnr
    ORDER BY Mitarbeiter.Name, Mitarbeiter.Vorname;
    
/* 4.8 */
SELECT 
    Mitarbeiter.Name AS Familienname,
    Mitarbeiter.Vorname AS Elternname,
    Kind.Vorname AS Kindername
FROM ProjektMitarbeiter
    INNER JOIN Mitarbeiter ON ProjektMitarbeiter.Mnr = Mitarbeiter.Mnr
    INNER JOIN Kind ON Mitarbeiter.Mnr = Kind.Mnr
    INNER JOIN Projekt ON ProjektMitarbeiter.ProjNr = Projekt.ProjNr
WHERE Projekt.Bezeichnung = "Schulvernetzung";