-- ---------------------------------------------------------------------------- -- DB: Bewertetes Praktikum 3 -- -- -- Name 1: Navid Sassan -- -- ---------------------------------------------------------------------------- -- ---------------------------------------------------------------------------- -- Aufgabe 1 -- ---------------------------------------------------------------------------- CREATE TABLE `Teilnehmer` ( SNr INTEGER NOT NULL, MNr INTEGER NOT NULL, IstLeiter VARCHAR(4) NOT NULL, CONSTRAINT FK_Teilnehmer_MNr FOREIGN KEY (MNr) REFERENCES Mitarbeiter(MNr), CONSTRAINT FK_Teilnehmer_SNr FOREIGN KEY (SNr) REFERENCES Sitzung(SNr) ); -- ---------------------------------------------------------------------------- -- Aufgabe 2 -- ---------------------------------------------------------------------------- SELECT * FROM `Sitzung` ORDER BY `Datum` DESC LIMIT 1; -- Durch das LIMIT 1 können nie Duplikate ausgegeben werden. -- ---------------------------------------------------------------------------- -- Aufgabe 3 -- ---------------------------------------------------------------------------- SELECT SNr FROM zhaw.Sitzung AS x WHERE NOT EXISTS (SELECT 1 FROM Teilnehmer AS y WHERE x.SNr = y.SNr) AND EXISTS (SELECT 1 FROM Sitzungsort AS z WHERE x.SNr = z.SNr); -- SNr ist der Primary Key von Sitzung, somit eindeutig in der Sitzung-Tabelle. -- ---------------------------------------------------------------------------- -- Aufgabe 4 -- ---------------------------------------------------------------------------- SELECT DISTINCT `Bezeichnung` FROM `Sitzung` NATURAL JOIN Sitzungsort WHERE ZNr=19 AND EXISTS (SELECT 1 FROM Teilnehmer NATURAL JOIN Mitarbeiter WHERE HausNR != (SELECT HausNR FROM Sitzungszimmer where ZNr=19)); -- ---------------------------------------------------------------------------- -- Aufgabe 5 -- ---------------------------------------------------------------------------- SELECT Bezeichnung,AVG(ZeitBis - ZeitVon) FROM Sitzung WHERE YEAR(Datum) = 2020 GROUP BY Bezeichnung; -- Durch das GROUP BY wird es pro Bezeichnung nur eine Row geben, somit also schon DISTINCT. -- ---------------------------------------------------------------------------- -- Aufgabe 6 -- ----------------------------------------------------------------------------