krata/_posts/2024-01-01-sqlmüll.md

1.0 KiB

title author date categories tags lang math
sql müll cscherr 2024-04-10 00:34:00 +0800
Blogging
Tutorial
favicon
en true

hallo x + \sum \lim \int

-- 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;
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
);