Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- AE-LS-3.2 Autovermietung
- -- Aufgabe 7 - SQL Abfragen
- -- Anzahl aller Filialen
- SELECT COUNT(Id)
- AS "Anzahl aller Filialen"
- FROM Filiale;
- -- Anzahl aller Fahrzeuge pro Filiale (insgesamt)
- SELECT fahrzeug.Filiale
- AS "Filialnummer", COUNT(*)
- AS "Anzahl der Fahrzeuge"
- FROM Fahrzeug fahrzeug
- GROUP BY fahrzeug.Filiale;
- -- Anzahl der ausgeliehenen Fahrzeuge pro Filiale
- SELECT fahrzeug.Filiale
- AS "Filialnummer", COUNT(*)
- FROM Fahrzeug fahrzeug
- INNER JOIN (Fahrzeug_Status status, Filiale filiale)
- ON (fahrzeug.Status = status.Id AND fahrzeug.Filiale = Filiale.Id)
- WHERE status.Beschreibung = "verliehen"
- GROUP BY fahrzeug.Filiale;
- -- Anzahl der Kunden pro Filiale
- SELECT kunde.Stammfiliale
- AS "Filialnummer", COUNT(*)
- AS "Anzahl der Kunden"
- FROM Kunde kunde
- GROUP BY kunde.Stammfiliale;
- -- Filiale mit den wenigsten verliehenen Fahrzeugen
- SELECT fahrzeug.Filiale
- AS "Filialnummer mit den wenigsten verliehenen Fahrzeugen", COUNT(*)
- AS "Anzahl verliehener Fahrzeuge"
- FROM Fahrzeug fahrzeug
- INNER JOIN (Fahrzeug_Status status, Filiale filiale)
- ON (fahrzeug.Status = status.Id AND fahrzeug.Filiale = Filiale.Id)
- WHERE status.Beschreibung = "verliehen"
- GROUP BY fahrzeug.Filiale
- ORDER BY "Anzahl verliehener Fahrzeuge" ASC limit 1;
- -- Alle Fahrzeuge, die im letzten Monat nicht "verliehen" wurden,
- -- werden der Filiale abgezogen und der Zentrale zugeordnet
- UPDATE Fahrzeug fahrzeug
- INNER JOIN (Vermietvorgang vorgang, Filiale filiale)
- ON (vorgang.Fahrzeug = fahrzeug.Id
- AND fahrzeug.Filiale = filiale.Id)
- SET fahrzeug.Filiale = NULL,
- fahrzeug.Zentrale = filiale.Zentrale
- WHERE (vorgang.Verliehen_am BETWEEN (
- CURRENT_DATE() - INTERVAL 1 MONTH)
- AND CURRENT_DATE());
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement