Advertisement
Guest User

Abfragen

a guest
Feb 27th, 2020
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MySQL 1.82 KB | None | 0 0
  1.  
  2. -- Anzahl der Filialen
  3. SELECT COUNT(ID) AS 'Anzahl Filialen' FROM Filiale;
  4.  
  5. -- Anzahl der Fahrzeuge pro Filiale (insgesamt)
  6. SELECT fil.ID, COUNT(fzg.ID) AS 'Anzahl Fahrzeuge' FROM Filiale fil LEFT JOIN Fahrzeug fzg ON fil.ID=fzg.ID_Filiale
  7. GROUP BY fil.ID;
  8.  
  9. -- Anzahl der ausgeliehenen Fahrzeuge pro Filiale
  10. SELECT fil.ID, COUNT(fzg.ID) AS 'Anzahl ausgeliehener Fahrzeuge' FROM Filiale fil LEFT JOIN (SELECT fzg.ID, fzg.ID_Filiale FROM  Fahrzeug fzg  INNER JOIN Fahrzeugstatus stat ON fzg.ID_Fahrzeugstatus = stat.ID WHERE stat.Bezeichnung = 'aktuell vermietet') fzg ON fil.ID=fzg.ID_Filiale
  11. GROUP BY fil.ID;
  12.  
  13. -- Anzahl der Kunden pro Filiale
  14. SELECT fil.ID, COUNT(knd.ID) AS 'Anzahl der Kunden' FROM Filiale fil LEFT JOIN Kunde knd ON fil.ID=knd.ID_Filiale
  15. GROUP BY fil.ID;
  16.  
  17. -- Filiale mit den wenigsten verliehenen Fahrzeugen
  18. SELECT a.ID FROM (SELECT fil.ID, COUNT(fzg.ID) AS 'Anzahl Fahrzeuge'  FROM Filiale fil LEFT JOIN Fahrzeug fzg ON fil.ID=fzg.ID_Filiale
  19. GROUP BY fil.ID) a WHERE a.`Anzahl Fahrzeuge`=(SELECT MIN(`Minimum Fahrzeuge`) FROM (SELECT fil.ID, COUNT(fzg.ID) AS 'Minimum Fahrzeuge'  FROM Filiale fil LEFT JOIN Fahrzeug fzg ON fil.ID=fzg.ID_Filiale GROUP BY fil.ID ) a);
  20.  
  21. -- alle Fahrzeuge, welche im letzten Monat nicht „verliehen“ wurden, werden der Filiale abgezogen und der Zentrale zugeordnet
  22.  
  23. SELECT *, DATEDIFF(Current_Date(), letzteVermietung) FROM Fahrzeug  WHERE  DATEDIFF(Current_Date(), letzteVermietung) >30;
  24.  
  25. CREATE TEMPORARY TABLE temp_table_name
  26. SELECT * FROM Fahrzeug;
  27.  
  28.  UPDATE Fahrzeug
  29.  SET ID_Filiale = NULL
  30.  ,ID_Zentrale=1
  31.  WHERE letzteVermietung IN (SELECT letzteVermietung FROM temp_table_name  WHERE  DATEDIFF(Current_Date(), letzteVermietung) >30);
  32.  
  33.  
  34.  SELECT *, DATEDIFF(Current_Date(), letzteVermietung) FROM Fahrzeug  WHERE  DATEDIFF(Current_Date(), letzteVermietung) >30;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement