58 lines
2.3 KiB
Plaintext
58 lines
2.3 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;
|
|
-- 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
|
|
-- ----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
|