cds-104_Datenbanken/Übungen aus den Folien
2026-04-19 14:50:00 +02:00

45 lines
1.3 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- Übungen zu Outer joins
/*
Geben Sie eine Query für folgende Tabelle an:
erste Spalte: Name eines Kunden
zweite Spalte: Anzahl Bestellungen (bei Kunden, die keine
Bestellungen haben, soll hier 0 stehen)
*/
select kunde.name, count(bestellung.id)
from kunde
left join bestellung on bestellung.kunde_id = kunde.id
group by kunde.id;
/*
Geben Sie eine Query für folgende Tabelle an:
erste Spalte: Name des Kunden
zweite Spalte: Gesamtbetrag, den der Kunde bezahlen muss
*/
select k.name, sum(p.preis * bp.anzahl)
from kunde k
left join bestellung b on b.kunde_id = k.id
left join bestellung_produkt bp on bp.bestellung_id = b.id
left join produkt p on p.id = bp.produkt_id
group by k.id;
/*
Geben Sie eine Query für folgende Tabelle an:
erste Spalte: Produktname
zweite Spalte: Anzahl wieviele Produkte müssen geliefert werden?
dritte Spalte: wie viele Produkte sind auf Lager?
*/
select p.name, sum(bp.anzahl) bestellt, p.anzahl auf_lager
from produkt p
join bestellung_produkt bp on bp.produkt_id = p.id
group by p.id;
/*
Wie müsste man die Query verändern, damit man nur die Produkte
sieht, die ausverkauft sind?
*/
select p.name, sum(bp.anzahl) bestellt, p.anzahl auf_lager
from produkt p
join bestellung_produkt bp on bp.produkt_id = p.id
group by p.id
having sum(bp.anzahl) >= p.anzahl;