44 lines
1.0 KiB
Markdown
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
|
|
);
|
|
```
|