--- title: sql müll author: cscherr date: 2024-04-10 00:34:00 +0800 categories: [Blogging, Tutorial] tags: [favicon] lang: en math: true --- $hallo x + \sum \lim \int$ ```sql -- Task: Ich habe noch 3 Eier im Kühlschrank deren Haltbarkeit demnächst ablaufen. Welche Kuchen kann ich backen, -- die maximal 3 Eier und 400g Mehl verbrauchen? -- Task (1.2) SELECT g.* FROM GEBACK g JOIN ( SELECT G_ID FROM Z_G zg LEFT JOIN ZUTAT z ON zg.Z_ID = z.Z_ID WHERE (z.NAME = 'Mehl' AND zg.MASSE <= 400) OR (z.NAME = 'Ei' AND zg.MASSE <= 300) GROUP BY G_ID HAVING COUNT(DISTINCT CASE WHEN z.NAME IN ('Mehl', 'Ei') THEN z.Z_ID END) < 2 ) fltr ON g.G_ID = fltr.G_ID; ``` ```sql SELECT * FROM GEBACK g WHERE g.G_ID IN ( SELECT G_ID FROM ( SELECT G_ID, SUM(CASE WHEN NAME = 'Mehl' THEN MASSE ELSE 0 END) AS sum_mehl, COUNT(DISTINCT CASE WHEN NAME IN ('Ei','Mehl') THEN Z_ID END) AS count_ingredients FROM Z_G WHERE NAME IN ('Mehl', 'Ei') GROUP BY G_ID HAVING sum_mehl <= 400 AND count_ingredients <= 2 ) x ); ```