DB-Praktika/03/Bewertetes_Praktikum_3.txt
2020-12-07 15:40:49 +01:00

57 lines
2.2 KiB
Plaintext

-- ----------------------------------------------------------------------------
-- 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;
-- ----------------------------------------------------------------------------
-- 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);
-- ----------------------------------------------------------------------------
-- 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));
-- Hier wird DISTINCT benötgt, da mehrere Sitzungen die gleiche Bezeichnung haben können, das Wort "verschieden" in der Aufgabenstellung aber bedeutet, dass keine Duplikate angezeigt werden sollen.
-- ----------------------------------------------------------------------------
-- Aufgabe 5
-- ----------------------------------------------------------------------------
SELECT Bezeichnung,AVG(ZeitBis - ZeitVon) FROM Sitzung WHERE YEAR(Datum) = 2020 GROUP BY Bezeichnung;
-- ----------------------------------------------------------------------------
-- Aufgabe 6
-- ----------------------------------------------------------------------------