HHS/LF5-databases/A25-01-29 Join.sql
mstar f344729b66 Sync
Signed-off-by: mstar <me@mstar.dev>
2025-03-12 13:00:18 +01:00

45 lines
No EOL
1.7 KiB
SQL

/* 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";