From 6b73808006a961b2057fbe60df9b8e88d4357d24 Mon Sep 17 00:00:00 2001 From: H4CK3R-01 Date: Wed, 18 May 2022 15:26:48 +0200 Subject: [PATCH] Fixed import and some statements --- Lösung/Aufgabe 3.sql | 36 ++++++++++++++++++------------------ Lösung/Aufgabe 4.sql | 25 +++++++++++++------------ 2 files changed, 31 insertions(+), 30 deletions(-) diff --git a/Lösung/Aufgabe 3.sql b/Lösung/Aufgabe 3.sql index 6ee035c..ad74b0c 100644 --- a/Lösung/Aufgabe 3.sql +++ b/Lösung/Aufgabe 3.sql @@ -618,35 +618,35 @@ VALUES ('Test Menu #3'); /* ---------------------------------- Menucontent ---------------------------------- */ -INSERT INTO Menucontent (MenuID, ProduktID) +INSERT INTO Menucontent (MenuID, MengenID) VALUES ((SELECT MenuID FROM Menu WHERE Menuname = 'Test Menu'), - (SELECT ProduktID FROM Produkt WHERE Produktname = 'Butter')); -INSERT INTO Menucontent (MenuID, ProduktID) + (SELECT MengenID FROM Menge WHERE ProduktID = (SELECT ProduktID FROM Produkt WHERE Produktname = 'Ketchup') LIMIT 1)); +INSERT INTO Menucontent (MenuID, MengenID) VALUES ((SELECT MenuID FROM Menu WHERE Menuname = 'Test Menu'), - (SELECT ProduktID FROM Produkt WHERE Produktname = 'Pommes Frites')); -INSERT INTO Menucontent (MenuID, ProduktID) + (SELECT MengenID FROM Menge WHERE ProduktID = (SELECT ProduktID FROM Produkt WHERE Produktname = 'Pommes Frites') LIMIT 1)); +INSERT INTO Menucontent (MenuID, MengenID) VALUES ((SELECT MenuID FROM Menu WHERE Menuname = 'Test Menu'), - (SELECT ProduktID FROM Produkt WHERE Produktname = 'Curry Sauce')); + (SELECT MengenID FROM Menge WHERE ProduktID = (SELECT ProduktID FROM Produkt WHERE Produktname = 'Curry Sauce') LIMIT 1)); -INSERT INTO Menucontent (MenuID, ProduktID) +INSERT INTO Menucontent (MenuID, MengenID) VALUES ((SELECT MenuID FROM Menu WHERE Menuname = 'Test Menu #2'), - (SELECT ProduktID FROM Produkt WHERE Produktname = 'Ketchup')); -INSERT INTO Menucontent (MenuID, ProduktID) + (SELECT MengenID FROM Menge WHERE ProduktID = (SELECT ProduktID FROM Produkt WHERE Produktname = 'Ketchup') LIMIT 1)); +INSERT INTO Menucontent (MenuID, MengenID) VALUES ((SELECT MenuID FROM Menu WHERE Menuname = 'Test Menu #2'), - (SELECT ProduktID FROM Produkt WHERE Produktname = 'Big Mac')); -INSERT INTO Menucontent (MenuID, ProduktID) + (SELECT MengenID FROM Menge WHERE ProduktID = (SELECT ProduktID FROM Produkt WHERE Produktname = 'Big Mac') LIMIT 1)); +INSERT INTO Menucontent (MenuID, MengenID) VALUES ((SELECT MenuID FROM Menu WHERE Menuname = 'Test Menu #2'), - (SELECT ProduktID FROM Produkt WHERE Produktname = 'Cheeseburger')); + (SELECT MengenID FROM Menge WHERE ProduktID = (SELECT ProduktID FROM Produkt WHERE Produktname = 'Cheeseburger') LIMIT 1)); -INSERT INTO Menucontent (MenuID, ProduktID) +INSERT INTO Menucontent (MenuID, MengenID) VALUES ((SELECT MenuID FROM Menu WHERE Menuname = 'Test Menu #3'), - (SELECT ProduktID FROM Produkt WHERE Produktname = 'Cheeseburger')); -INSERT INTO Menucontent (MenuID, ProduktID) + (SELECT MengenID FROM Menge WHERE ProduktID = (SELECT ProduktID FROM Produkt WHERE Produktname = 'Cheeseburger') LIMIT 1)); +INSERT INTO Menucontent (MenuID, MengenID) VALUES ((SELECT MenuID FROM Menu WHERE Menuname = 'Test Menu #3'), - (SELECT ProduktID FROM Produkt WHERE Produktname = 'McSundae Karamell')); -INSERT INTO Menucontent (MenuID, ProduktID) + (SELECT MengenID FROM Menge WHERE ProduktID = (SELECT ProduktID FROM Produkt WHERE Produktname = 'McSundae Karamell') LIMIT 1)); +INSERT INTO Menucontent (MenuID, MengenID) VALUES ((SELECT MenuID FROM Menu WHERE Menuname = 'Test Menu #3'), - (SELECT ProduktID FROM Produkt WHERE Produktname = 'Big Mac')); + (SELECT MengenID FROM Menge WHERE ProduktID = (SELECT ProduktID FROM Produkt WHERE Produktname = 'Big Mac') LIMIT 1)); /* diff --git a/Lösung/Aufgabe 4.sql b/Lösung/Aufgabe 4.sql index 3e4b1c6..d72c84c 100644 --- a/Lösung/Aufgabe 4.sql +++ b/Lösung/Aufgabe 4.sql @@ -9,7 +9,8 @@ als eine Art Speisekarte aus. SELECT Menuname, GROUP_CONCAT(Produktname SEPARATOR ', ') AS 'Produkte' FROM Menu JOIN Menucontent M on Menu.MenuID = M.MenuID - JOIN Produkt P on M.ProduktID = P.ProduktID + JOIN Menge M2 on M.MengenID = M2.MengenID + JOIN Produkt P on M2.ProduktID = P.ProduktID GROUP BY Menuname; @@ -20,16 +21,16 @@ bezüglich der Gesamtnährwerte dieser Menüs. ----------------------------------------------------------------------- */ SELECT Menuname, - GROUP_CONCAT(Produktname SEPARATOR ', ') AS 'Produkte', - SUM(Fett * N.Menge / 100) AS 'Fett', - SUM(Kohlenhydrate * N.Menge / 100) AS 'Kohlenhydrate', - SUM(Eiweiss * N.Menge / 100) AS 'Eiweiss', - SUM(Brennwert * N.Menge / 100) AS 'Brennwert' + GROUP_CONCAT(Produktname SEPARATOR ', ') AS 'Produkte', + SUM(Fett * (SELECT Menge FROM Menge WHERE MengenID = M.MengenID) / 100) AS 'Fett', + SUM(Kohlenhydrate * (SELECT Menge FROM Menge WHERE MengenID = M.MengenID) / 100) AS 'Kohlenhydrate', + SUM(Eiweiss * (SELECT Menge FROM Menge WHERE MengenID = M.MengenID) / 100) AS 'Eiweiss', + SUM(Brennwert * (SELECT Menge FROM Menge WHERE MengenID = M.MengenID) / 100) AS 'Brennwert' FROM Menu JOIN Menucontent M on Menu.MenuID = M.MenuID - JOIN Produkt P on M.ProduktID = P.ProduktID + JOIN Menge M3 on M.MengenID = M3.MengenID + JOIN Produkt P on M3.ProduktID = P.ProduktID JOIN Naehrwerte N on P.ProduktID = N.ProduktID - JOIN Menge M2 on P.ProduktID = M2.ProduktID GROUP BY Menuname; @@ -42,13 +43,13 @@ TODO Redo */ SELECT Personenvorname, Personenname, - CONCAT_WS(', ', GROUP_CONCAT(DISTINCT Allergenbezeichnung SEPARATOR ', '), - GROUP_CONCAT(DISTINCT Zusatzstoffbezeichnung SEPARATOR ', ')) + GROUP_CONCAT(DISTINCT P.Produktname SEPARATOR ', ') FROM Person JOIN Allergie A on Person.PersonID = A.PersonID JOIN Allergen A2 on A.AllergenID = A2.AllergenID - JOIN Zusatzstoffunvertraeglichkeit Z on Person.PersonID = Z.PersonID - JOIN Zusatzstoff Z2 on Z2.E_Nummer = Z.E_Nummer + JOIN enthaeltAllergen eA on A2.AllergenID = eA.AllergenID + JOIN Produkt P on eA.ProduktID = P.ProduktID + JOIN enthaeltZusatzstoff eZ on P.ProduktID = eZ.ProduktID GROUP BY Personenvorname, Personenname;