Task #5 should mostly work now
This commit is contained in:
parent
be0cd1b6f2
commit
728490d51f
@ -39,7 +39,6 @@ FROM Menu
|
|||||||
GROUP BY Menuname);
|
GROUP BY Menuname);
|
||||||
|
|
||||||
|
|
||||||
# TODO Compare Menu_Naehrwerte.Allergene and Menu_Naehrwerte.Zusatzstoff with Allergie and Zusatzstoffunverträglichkeit
|
|
||||||
DROP VIEW IF EXISTS Aufgabe_5;
|
DROP VIEW IF EXISTS Aufgabe_5;
|
||||||
CREATE VIEW Aufgabe_5 AS
|
CREATE VIEW Aufgabe_5 AS
|
||||||
(
|
(
|
||||||
@ -47,14 +46,72 @@ SELECT Personenvorname,
|
|||||||
Personenname,
|
Personenname,
|
||||||
Naehrwertziel,
|
Naehrwertziel,
|
||||||
MN.Brennwert,
|
MN.Brennwert,
|
||||||
CONCAT(MN.Brennwert / Naehrwertziel * 100, '%') AS Naehrwertziel_Prozent,
|
CONCAT(ROUND(MN.Brennwert / Naehrwertziel * 100, 2), '%') AS Naehrwertziel_Prozent,
|
||||||
MN.Fett,
|
MN.Fett,
|
||||||
MN.Kohlenhydrate,
|
MN.Kohlenhydrate,
|
||||||
MN.Eiweiss,
|
MN.Eiweiss,
|
||||||
IF(MN.Brennwert / Naehrwertziel * 100 <= 100, 'OK', 'Naehrwertziel überschritten') AS Naehrwert_OK,
|
IF(MN.Brennwert / Naehrwertziel * 100 <= 100, 'OK', 'Naehrwertziel überschritten') AS Naehrwert_OK,
|
||||||
M.Menuname,
|
IF((SELECT COUNT(*)
|
||||||
Allergene,
|
FROM (SELECT DISTINCT SUBSTRING_INDEX(SUBSTRING_INDEX(Allergene, ', ', n.digit + 1), ', ', -1) AS Allergen
|
||||||
Zusatzstoff
|
FROM Menu_Naehrwerte
|
||||||
|
INNER JOIN
|
||||||
|
(SELECT 0 digit UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3) n
|
||||||
|
ON LENGTH(REPLACE(Allergene, ', ', '')) <= LENGTH(Allergene) - n.digit
|
||||||
|
WHERE Menuname = M.Menuname
|
||||||
|
UNION ALL
|
||||||
|
SELECT Allergenbezeichnung
|
||||||
|
FROM Allergie AS A20
|
||||||
|
JOIN Allergen A10 on A20.AllergenID = A10.AllergenID
|
||||||
|
JOIN Person P10 on A20.PersonID = P10.PersonID
|
||||||
|
WHERE Personenname = P.Personenname) as u_all) = (SELECT COUNT(*)
|
||||||
|
FROM (SELECT DISTINCT SUBSTRING_INDEX(
|
||||||
|
SUBSTRING_INDEX(Allergene, ', ', n.digit + 1),
|
||||||
|
', ', -1) AS Allergen
|
||||||
|
FROM Menu_Naehrwerte
|
||||||
|
INNER JOIN
|
||||||
|
(SELECT 0 digit UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3) n
|
||||||
|
ON LENGTH(REPLACE(Allergene, ', ', '')) <= LENGTH(Allergene) - n.digit
|
||||||
|
WHERE Menuname = M.Menuname
|
||||||
|
UNION
|
||||||
|
SELECT Allergenbezeichnung
|
||||||
|
FROM Allergie AS A20
|
||||||
|
JOIN Allergen A10 on A20.AllergenID = A10.AllergenID
|
||||||
|
JOIN Person P10 on A20.PersonID = P10.PersonID
|
||||||
|
WHERE Personenname = P.Personenname) as u),
|
||||||
|
'OK',
|
||||||
|
'Allergenhaltiges Produkt konsumiert') AS 'Allergene_OK',
|
||||||
|
IF((SELECT COUNT(*)
|
||||||
|
FROM (SELECT DISTINCT SUBSTRING_INDEX(SUBSTRING_INDEX(Zusatzstoff, ', ', n.digit + 1), ', ',
|
||||||
|
-1) AS Zusatzstoff
|
||||||
|
FROM Menu_Naehrwerte
|
||||||
|
INNER JOIN
|
||||||
|
(SELECT 0 digit UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3) n
|
||||||
|
ON LENGTH(REPLACE(Zusatzstoff, ', ', '')) <= LENGTH(Zusatzstoff) - n.digit
|
||||||
|
WHERE Menuname = M.Menuname
|
||||||
|
UNION ALL
|
||||||
|
SELECT Z.E_Nummer
|
||||||
|
FROM Zusatzstoffunvertraeglichkeit AS Z20
|
||||||
|
JOIN Zusatzstoff Z on Z20.E_Nummer = Z.E_Nummer
|
||||||
|
JOIN Person P10 on Z20.PersonID = P10.PersonID
|
||||||
|
WHERE Personenname = P.Personenname) as u_all) = (SELECT COUNT(*)
|
||||||
|
FROM (SELECT DISTINCT SUBSTRING_INDEX(
|
||||||
|
SUBSTRING_INDEX(Zusatzstoff, ', ', n.digit + 1),
|
||||||
|
', ',
|
||||||
|
-1) AS Zusatzstoff
|
||||||
|
FROM Menu_Naehrwerte
|
||||||
|
INNER JOIN
|
||||||
|
(SELECT 0 digit UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3) n
|
||||||
|
ON LENGTH(REPLACE(Zusatzstoff, ', ', '')) <=
|
||||||
|
LENGTH(Zusatzstoff) - n.digit
|
||||||
|
WHERE Menuname = M.Menuname
|
||||||
|
UNION
|
||||||
|
SELECT Z.E_Nummer
|
||||||
|
FROM Zusatzstoffunvertraeglichkeit AS Z20
|
||||||
|
JOIN Zusatzstoff Z on Z20.E_Nummer = Z.E_Nummer
|
||||||
|
JOIN Person P10 on Z20.PersonID = P10.PersonID
|
||||||
|
WHERE Personenname = P.Personenname) as u),
|
||||||
|
'OK',
|
||||||
|
'Zusatzstoffhaltiges Produkt konsumiert') AS 'Zusatzstoff_OK'
|
||||||
FROM konsumiert
|
FROM konsumiert
|
||||||
JOIN Menu M on M.MenuID = konsumiert.MenuID
|
JOIN Menu M on M.MenuID = konsumiert.MenuID
|
||||||
JOIN Person P on P.PersonID = konsumiert.PersonID
|
JOIN Person P on P.PersonID = konsumiert.PersonID
|
||||||
|
Loading…
Reference in New Issue
Block a user