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