Advertisement
beccafuchs

LF6-AE-LS-3.2 Autovermietung Abfragen

Feb 14th, 2020
141
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MySQL 1.68 KB | None | 0 0
  1. -- AE-LS-3.2 Autovermietung
  2. -- Aufgabe 7 - SQL Abfragen
  3.  
  4. -- Anzahl aller Filialen
  5. SELECT COUNT(Id)
  6. AS "Anzahl aller Filialen"
  7. FROM Filiale;
  8.  
  9. -- Anzahl aller Fahrzeuge pro Filiale (insgesamt)
  10. SELECT fahrzeug.Filiale
  11. AS "Filialnummer", COUNT(*)
  12. AS "Anzahl der Fahrzeuge"
  13. FROM Fahrzeug fahrzeug
  14. GROUP BY fahrzeug.Filiale;
  15.  
  16. -- Anzahl der ausgeliehenen Fahrzeuge pro Filiale
  17. SELECT fahrzeug.Filiale
  18. AS "Filialnummer", COUNT(*)
  19. FROM Fahrzeug fahrzeug
  20. INNER JOIN (Fahrzeug_Status status, Filiale filiale)
  21. ON (fahrzeug.Status = status.Id AND fahrzeug.Filiale = Filiale.Id)
  22. WHERE status.Beschreibung = "verliehen"
  23. GROUP BY fahrzeug.Filiale;
  24.  
  25. -- Anzahl der Kunden pro Filiale
  26. SELECT kunde.Stammfiliale
  27. AS "Filialnummer", COUNT(*)
  28. AS "Anzahl der Kunden"
  29. FROM Kunde kunde
  30. GROUP BY kunde.Stammfiliale;
  31.  
  32. -- Filiale mit den wenigsten verliehenen Fahrzeugen
  33. SELECT fahrzeug.Filiale
  34. AS "Filialnummer mit den wenigsten verliehenen Fahrzeugen", COUNT(*)
  35. AS "Anzahl verliehener Fahrzeuge"
  36. FROM Fahrzeug fahrzeug
  37. INNER JOIN (Fahrzeug_Status status, Filiale filiale)
  38. ON (fahrzeug.Status = status.Id AND fahrzeug.Filiale = Filiale.Id)
  39. WHERE status.Beschreibung = "verliehen"
  40. GROUP BY fahrzeug.Filiale
  41. ORDER BY "Anzahl verliehener Fahrzeuge" ASC limit 1;
  42.  
  43. -- Alle Fahrzeuge, die im letzten Monat nicht "verliehen" wurden,
  44. -- werden der Filiale abgezogen und der Zentrale zugeordnet
  45. UPDATE Fahrzeug fahrzeug
  46. INNER JOIN (Vermietvorgang vorgang, Filiale filiale)
  47. ON (vorgang.Fahrzeug = fahrzeug.Id
  48. AND fahrzeug.Filiale = filiale.Id)
  49. SET fahrzeug.Filiale = NULL,
  50. fahrzeug.Zentrale = filiale.Zentrale
  51. WHERE (vorgang.Verliehen_am BETWEEN (
  52. CURRENT_DATE() - INTERVAL 1 MONTH)
  53. AND CURRENT_DATE());
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement