title image


Smiley Re: Verleihdaten Tabellen miteinander Vergleichen
Hallo Anne, Hallo KrümelmonsterIch hab mal eine DB für eine Carsharingsimulation geschrieben, in der es um ein ähnliches Problem geht: Will einer ein Auto ausleihen, so muss festgestellt werden, das es keine Überschneidungen mit anderen Ausleihen gibt. Ich denke, der Lösungsansatz wäre ganz interessant für euch:Tabellen:Personen(PID, Nachname, Vorname, ...)Fahrzeuge(KFZID, BesizterID, Kennzeichen, Typ, Leistung, ...)Reservierungen(ResNr, AusleiherID, KFZID, AusleiheVon, AusleiheBis, ...)Personen und Fahrzeuge stehen in eine 1:n Beziehung (Person besitzt Fahrzeug) zueinander,sowie in einer m:n Beziehung die durch die Relation Reservierungen dargestellt wird (1 Person kann mehrere KFZ ausleihen (nacheinander!), 1 KFZ kann von mehreren Personen ausgeliehen werden (nacheinander!))die uninteressanten Felder habe ich weggelassen. In einem Formular kann ich neue Personen aufnehmen, in einem weiteren neue KFZ und schließlich in einem dritten Formular Reservierungen vornehmen. In diesem Forumlar gebe ich mit den Textfeldern ReserviereVon und ReserviereBis ein Zeitintervall vor. Ein Button sucht dann alle PKW, die in dieser Zeit nicht ausgeliehen sind. Hierfür benutze ich eine Abfrage, die nicht ganz trivial ist (viel Spass beim Nachvollziehen):PARAMETERS ReserviereVon DateTime, ReserviereBis DateTime;SELECT KFZID, Kennzeichen, Typ, Leistung, Nachname, VornameFROM Fahrzeuge INNER JOIN Personen ON Fahrzeuge.BesitzerID = Personen.PIDWHERE KFZID NOT IN (SELECT KFZID FROM Reservierungen WHERE AusleiheVon >= ReserviereBis AND AusleiheBis ORDER BY Kennzeichen;Also: Ich hoffe, das hilft euch weiter.Gruß Wolfgang

geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: