1NF bis 3NF Normalisierung, Multi-Table JOINs, Window Functions, ACID Transaktionen & ORM.
Datenpersistenz für Anwendungsentwickler: Relationale Modellierung (ERM, Chen/Krähenfuß), Normalisierung bis zur 3. Normalform, DDL/DML/DCL Abfragen, Indizes, Transaktionen (ACID) und ORM-Frameworks.
-- Aggregation mit HAVING und Datumsberechnung nach ZPA-Standard
SELECT k.kunde_id, k.firmenname, COUNT(b.bestell_nr) AS anzahl_bestellungen,
SUM(b.gesamtbetrag) AS umsatz,
DATEDIFF(NOW(), MAX(b.bestelldatum)) AS tage_seit_letzter_order
FROM kunden k
JOIN bestellungen b ON k.kunde_id = b.kunde_id
WHERE b.status = 'COMPLETED'
GROUP BY k.kunde_id, k.firmenname
HAVING SUM(b.gesamtbetrag) > 10000;
Bearbeiten Sie die Aufgaben und vergleichen Sie Ihre Antwort mit dem didaktischen Erwartungshorizont:
Schreiben Sie das syntaktisch korrekte SQL-Statement nach ANSI/ISO-Standard.
Formulieren Sie eine SQL-Abfrage, die den Kundennamen und die Gesamtsumme aller Bestellungen für jeden Kunden ausgibt, dessen Gesamtbestellwert 10.000 EUR überschreitet. Das Ergebnis soll absteigend nach der Summe sortiert sein.
Erläutern Sie den Unterschied im Abfrageergebnis zwischen INNER JOIN und LEFT OUTER JOIN bezüglich der Ergebniszeilen.
Formulieren Sie zwei SQL-Abfragen, die alle Kundennamen ausgeben, die mindestens eine Bestellung getätigt haben: Einmal unter Verwendung einer Subquery mit IN und einmal mit EXISTS.
Formulieren Sie eine SQL-Abfrage nach ZPA-Standard, die für alle im laufenden Jahr geschlossenen Tickets die Ticket-ID und die Bearbeitungsdauer in Tagen berechnet (unter Verwendung von DATEDIFF) und nur Tickets anzeigt, deren Bearbeitung länger als 14 Tage gedauert hat.