Kunde Bestellung Produkt

Aufgabe 1

Gebe alle Bestellungen mit dem Kundennamen und dem Bestelldatum aus.
Sortiere nach Datum.

Lösung

explizite Schreibweise


SELECT
k.name AS Kundenname,
b.bestellung_id AS Bestellung,
b.bestelldatum AS Datum
FROM bestellung b
JOIN kunde k ON k.kunde_id = b.kunde_id
ORDER BY Datum;
oder kürzer (Tabellen werden auf einen Buchstaben angekürzt):
Bei der Benutzung der Tabelle wird die Tabelle mit einem Buchstaben abgekürzt.


SELECT
k.name AS Kundenname,
b.bestellung_id AS Bestellung,
b.bestelldatum AS Datum
FROM bestellung b
JOIN kunde k ON k.kunde_id = b.kunde_id
ORDER BY Datum;

implizite Schreibweise

SELECT 
kunde.name AS Kundenname,
bestellung.bestellung_id AS Bestellung,
bestellung.bestelldatum AS Datum
FROM bestellung, kunde
WHERE kunde.kunde_id = bestellung.kunde_id
ORDER BY Datum;

SELECT 
k.name AS Kundenname,
b.bestellung_id AS Bestellung,
b.bestelldatum AS Datum
FROM bestellung b, kunde k
WHERE k.kunde_id = b.kunde_id
ORDER BY Datum;


Aufgabe 2

Gebe alle Bestellungen mit Produktname und Menge aus.
Sortiere nach Menge absteigend.

Lösung

SELECT
    p.name AS Produktname,
    b.menge AS Menge
FROM bestellung b, produkt p
WHERE b.produkt_id = p.produkt_id 
ORDER BY Menge DESC;
SELECT
p.name AS Produktname,
b.menge AS Menge
FROM bestellung b
JOIN produkt p ON b.produkt_id = p.produkt_id
ORDER BY Menge DESC;

Aufgabe 3

Welche Produkte hat der Kunde "Anna" bestellt?

Lösung

SELECT
k.name AS Kundenname,
p.name AS Produktname,
b.menge AS Menge
FROM bestellung b, kunde k, produkt p
WHERE b.kunde_id = k.kunde_id
AND b.produkt_id = p.produkt_id
AND k.name = 'Anna';
SELECT
k.name AS Kundenname,
p.name AS Produktname,
b.menge AS Menge
FROM bestellung b
JOIN kunde k ON b.kunde_id = k.kunde_id
JOIN produkt p ON b.produkt_id = p.produkt_id
WHERE k.name = 'Anna';

Aufgabe 4

Gebe alle Bestellungen mit Kundenname, Produktname und Bestelldatum aus.
Sortiere nach Kundenname.

Lösung

SELECT
k.name AS Kundenname,
p.name AS Produktname,
b.bestelldatum AS Datum
FROM bestellung b, kunde k, produkt p
WHERE b.kunde_id = k.kunde_id
AND b.produkt_id = p.produkt_id
ORDER BY Kundenname;
SELECT
k.name AS Kundenname,
p.name AS Produktname,
b.bestelldatum AS Datum
FROM bestellung b
JOIN kunde k ON b.kunde_id = k.kunde_id
JOIN produkt p ON b.produkt_id = p.produkt_id
ORDER BY Kundenname;

Aufgabe 5

Wie viele Artikel wurden insgesamt verkauft?

Lösung

SELECT
SUM(b.menge) AS Gesamtmenge
FROM bestellung b;

Aufgabe 6

Welche Produkte wurden in einer Menge größer als 1 bestellt?

Lösung

SELECT
p.name AS Produktname,
b.menge AS Menge
FROM bestellung b, produkt p
WHERE b.produkt_id = p.produkt_id 
AND b.menge > 1;
SELECT
p.name AS Produktname,
b.menge AS Menge
FROM bestellung b
JOIN produkt p ON b.produkt_id = p.produkt_id
WHERE b.menge > 1;

Aufgabe 7

Wie viele Bestellungen enthalten Produkte aus der Kategorie "Elektronik"?

Lösung

SELECT
COUNT(b.bestellung_id) AS "Elektronik Bestellungen" 
FROM bestellung b, produkt p
WHERE b.produkt_id = p.produkt_id
AND p.kategorie = 'Elektronik';
SELECT
COUNT(b.bestellung_id) AS "Elektronik Bestellungen"
FROM bestellung b
JOIN produkt p ON b.produkt_id = p.produkt_id
WHERE p.kategorie = 'Elektronik';

Aufgabe 8

Wie viel Geld wurde insgesamt in allen Bestellungen umgesetzt?

Lösung

SELECT
SUM(p.preis * b.menge) AS Gesamtumsatz
FROM bestellung b, produkt p
WHERE b.produkt_id = p.produkt_id;
SELECT
SUM(p.preis * b.menge) AS Gesamtumsatz
FROM bestellung b
JOIN produkt p ON b.produkt_id = p.produkt_id;

Aufgabe 9

Wie viele Bestellungen gibt es insgesamt von Kunden aus Hamburg?

Lösung

SELECT
COUNT(b.bestellung_id) AS "Anzahl Bestellungen"
FROM bestellung b, kunde k
WHERE b.kunde_id = k.kunde_id
AND k.stadt = 'Hamburg';
SELECT
COUNT(b.bestellung_id) AS "Anzahl Bestellungen"
FROM bestellung b
JOIN kunde k ON b.kunde_id = k.kunde_id
WHERE k.stadt = 'Hamburg';

Aufgabe 10

Wie hoch ist der durchschnittliche Produktpreis der bestellten Produkte?

Lösung

SELECT
AVG(p.preis) AS Durchschnittspreis
FROM bestellung b, produkt p
WHERE b.produkt_id = p.produkt_id;
SELECT
AVG(p.preis) AS Durchschnittspreis
FROM bestellung b
JOIN produkt p ON b.produkt_id = p.produkt_id;

Aufgabe 11

Was ist der teuerste bestellte Gesamtpreis einer Bestellung?

Lösung

SELECT
MAX(p.preis * b.menge) AS "Teuerste Bestellung"
FROM bestellung b, produkt p
WHERE b.produkt_id = p.produkt_id;
SELECT
MAX(p.preis * b.menge) AS "Teuerste Bestellung"
FROM bestellung b
JOIN produkt p ON b.produkt_id = p.produkt_id;

Aufgabe 12

Welche Bestellungen haben einen Gesamtpreis über 500€?
Ausgabe: Kundenname, Produktname, Menge, Gesamtpreis.
Sortiere nach Gesamtpreis.

Lösung

SELECT
k.name AS Kundenname,
p.name AS Produktname,
b.menge AS Menge,
p.preis * b.menge AS Gesamtpreis
FROM bestellung b, kunde k, produkt p 
WHERE b.kunde_id = k.kunde_id
AND b.produkt_id = p.produkt_id
AND p.preis * b.menge > 500
ORDER BY Gesamtpreis;
SELECT
k.name AS Kundenname,
p.name AS Produktname,
b.menge AS Menge,
p.preis * b.menge AS Gesamtpreis
FROM bestellung b
JOIN kunde k ON b.kunde_id = k.kunde_id
JOIN produkt p ON b.produkt_id = p.produkt_id
WHERE p.preis * b.menge > 500
ORDER BY Gesamtpreis;