Added some sql commands
This commit is contained in:
parent
12030840b7
commit
6b0d013ce7
@ -1,3 +1,5 @@
|
|||||||
|
USE project;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
---------------------------------- Zusatzstoffklasse ----------------------------------
|
---------------------------------- Zusatzstoffklasse ----------------------------------
|
||||||
*/
|
*/
|
||||||
|
82
Lösung/Aufgabe 4.sql
Normal file
82
Lösung/Aufgabe 4.sql
Normal file
@ -0,0 +1,82 @@
|
|||||||
|
USE project;
|
||||||
|
|
||||||
|
/*
|
||||||
|
---------------------------------- 1 ----------------------------------
|
||||||
|
Geben Sie mit SQL alle Menüs mit den darin enthaltenen Produkten menschenlesbar
|
||||||
|
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
|
||||||
|
GROUP BY Menuname;
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
---------------------------------- 2 ----------------------------------
|
||||||
|
Erweitern Sie die Ausgabe aus der vorherigen Abfrage um hilfreiche Informationen
|
||||||
|
bezüglich der Gesamtnährwerte dieser Menüs.
|
||||||
|
-----------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
SELECT Menuname,
|
||||||
|
GROUP_CONCAT(Produktname SEPARATOR ', ') AS 'Produkte',
|
||||||
|
SUM(Fett) AS 'Fett',
|
||||||
|
SUM(Kohlenhydrate) AS 'Kohlenhydrate',
|
||||||
|
SUM(Eiweiss) AS 'Eiweiss',
|
||||||
|
SUM(Brennwert) AS 'Brennwert'
|
||||||
|
FROM Menu
|
||||||
|
JOIN Menucontent M on Menu.MenuID = M.MenuID
|
||||||
|
JOIN Produkt P on M.ProduktID = P.ProduktID
|
||||||
|
JOIN Naehrwerte N on P.ProduktID = N.ProduktID
|
||||||
|
GROUP BY Menuname;
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
---------------------------------- 3 ----------------------------------
|
||||||
|
Geben sie mit SQL alle Produkte mit für Kundinnen und Kunden relevanten Informationen für
|
||||||
|
eine bestimmte Person aus (betreffend Allergenen, Unverträglichkeiten, vegetarisch, etc.).
|
||||||
|
-----------------------------------------------------------------------
|
||||||
|
TODO Vegetarisch? Wo finden wir Informationen zu den Produkten?
|
||||||
|
*/
|
||||||
|
SELECT Personenvorname,
|
||||||
|
Personenname,
|
||||||
|
CONCAT_WS(', ', GROUP_CONCAT(DISTINCT Allergenbezeichnung SEPARATOR ', '),
|
||||||
|
GROUP_CONCAT(DISTINCT Zusatzstoffbezeichnung 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
|
||||||
|
GROUP BY Personenvorname, Personenname;
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
---------------------------------- 4 ----------------------------------
|
||||||
|
Sortieren Sie alle enthaltenen Produkte absteigend nach Anzahl der enthaltenen Zusatzstoffe.
|
||||||
|
-----------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
SELECT Produktname,
|
||||||
|
LENGTH(GROUP_CONCAT(E_Nummer)) - LENGTH(REPLACE(GROUP_CONCAT(E_Nummer), ',', '')) + 1 AS 'Anzahl Zusatzstoffe'
|
||||||
|
FROM Produkt
|
||||||
|
JOIN enthaeltZusatzstoff eZ on Produkt.ProduktID = eZ.ProduktID
|
||||||
|
GROUP BY Produktname
|
||||||
|
ORDER BY LENGTH(GROUP_CONCAT(E_Nummer)) - LENGTH(REPLACE(GROUP_CONCAT(E_Nummer), ',', '')) + 1 DESC;
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
---------------------------------- 5 ----------------------------------
|
||||||
|
Sortieren Sie alle enthaltenen Produkte aufsteigend nach Kalorienanzahl in der Portion, die verkauft wird.
|
||||||
|
-----------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
---------------------------------- 6 ----------------------------------
|
||||||
|
Geben Sie eine SQL Anfrage an, die alle Produkte ausgibt, die eine bestimmte Anzahl von Emulgatoren enthalten.
|
||||||
|
a. Keine Emulgatoren
|
||||||
|
b. 1 Emulgator
|
||||||
|
c. 2 Emulgatoren
|
||||||
|
d. Mehr
|
||||||
|
-----------------------------------------------------------------------
|
||||||
|
*/
|
13
Lösung/Aufgabe 5.sql
Normal file
13
Lösung/Aufgabe 5.sql
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
USE project;
|
||||||
|
|
||||||
|
/*
|
||||||
|
---------------------------------- 1 ----------------------------------
|
||||||
|
Zu jeder Person soll aufgezeichnet werden, wann dies Person wieviel von
|
||||||
|
welchem Produkt zu sich nimmt. Daraus soll eine Sicht erstellt werden, die anzeigt, wie viel
|
||||||
|
Prozent der Tagesmenge erreicht wurde und wieviel von welchen Nährstoffen konsumiert
|
||||||
|
wurde. Idealerweise gibt es ein Rechtekonzept dafür (ggfs. als SQL-Kommentar im Skript).
|
||||||
|
Wird dabei gegen Vorgaben (Kalorienvorgaben, vegetarisch, Allergene, etc.) verstoßen, so
|
||||||
|
soll das in der Sicht angezeigt werden. Wenn der Tag „ok“ ist, soll das markiert werden,
|
||||||
|
ansonsten soll angezeigt werden, gegen was verstoßen wurde.
|
||||||
|
-----------------------------------------------------------------------
|
||||||
|
*/
|
Loading…
Reference in New Issue
Block a user