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

44 lines
1.0 KiB
Markdown

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