USE verein;

--a
SELECT spieler.name FROM spieler
JOIN strafen ON spieler.spielernr = strafen.spielernr
WHERE spieler.ort = "Düsseldorf";

--b
SELECT teams.liga, spieler.name FROM spieler
JOIN wettkaempfe ON wettkaempfe.spielernr = spieler.spielernr
JOIN teams ON wettkaempfe.teamnr = teams.teamnr;

--c
SELECT spieler.name, teams.teamnr, teams.liga FROM spieler
LEFT JOIN teams ON spieler.spielernr = teams.captain;

--d
SELECT sum(wettkaempfe.gewonnen + wettkaempfe.verloren) FROM teams
JOIN wettkaempfe ON wettkaempfe.teamnr = team.teamnr;

--e
SELECT max(strafen.betrag) FROM spieler
JOIN teams ON spieler.spielernr = teams.captain
JOIN strafen ON spieler.spielernr = strafen.spielernr
WHERE year(strafen.datum) = year(now())
AND date(strafen.datum) >= 6;

--f
SELECT teams.liga, sum(strafen.betrag) FROM teams
JOIN wettkaempfe ON teams.teamnr = wettkaempfe.teamnr
JOIN spieler ON wettkaempfe.spielernr = spieler.spielernr
JOIN strafen ON spieler.spielernr = strafen.spielernr
GROUP BY teams.liga;

--g
SELECT spieler.name FROM spieler
JOIN strafen ON spieler.spielernr = strafen.spielernr
WHERE strafen.betrag >= 50 --g.2
GROUP BY spieler.spielernr
HAVING count(strafen.zahlungsnr) >= 2;

--h
SELECT spieler.name FROM spieler
LEFT JOIN strafen ON strafen.spielernr = spieler.spielernr
JOIN wettkaempfe ON spieler.spielernr = wettkaempfe.spielernr
WHERE wettkaempfe.gewonnen > wettkaempfe.verloren
GROUP BY spieler.spielernr
HAVING COUNT(strafen.zahlungsnr) = 0;