[ alfa-pro @ 05.11.2015. 10:47 ] @
Drsutvo imam sistem za renta car i sada nemem ideju kako prikazem kada je neki auto zauzet za vise datuma npr;

Opel corsa je zauzeta od 10.05.2015 do 20.05.2015 i 10 novembra do 20 novembra, takodje je zauzeta i od 25 novembra do 27.
Meni to sa single rezervacijom radi super ali mi neide u glavu kako bi mogao da uradim taj multiple upit .

Klijen u sustini pokrece aplikaciju preko telefona i njemu treba rezultat ko iz rukava. Kad mu neko kaze e treba mi za taj od tog datuma do tog, taj i taj auto
on proveri UPS u decembru je taj rezervisan. itd itd ne znam dali me kontate sta hocu reci?

Moja trenutna baza sadrzi tabele booking (car_id, booking_date, return_date, itd...)

Jel moze neka ideja?
[ djoka_l @ 05.11.2015. 11:21 ] @
Dobrodošao u MySQL forum. Moram odmah da ti dam malo "pravila igre" u bilo kom forumu koji se bavi bazama podataka.

Osnovna stvar koja pomaže da dobiješ precizan odgovor u ovim forumima je da napraviš skriptove za kreiranje i popunjavanja baze i da precizno opišeš šta treba da dobiješ.

Recimo:
Code (sql):

CREATE TABLE booking (
   car_id INTEGER,
   booking_date DATE,
   returning_date DATE);

INSERT INTO booking VALUES (1, '2015-05-10', '2015-05-20');
...
 
[ djoka_l @ 05.11.2015. 11:33 ] @
E, sada, da vidimo neke upite.

Kako proveriti da li je auto sa car_id = 1 slobodan u periodu od 12. decembra do 15. decembra.

Imamo sledeće slučajeve koji nam ne odgovaraju (auto nije slobodan)

1. rezervacija za auto je pre 12. decembra, a ističe u periodu (ili posle njega) koji nam je potreban.
2. postoji rezervacija kojoj je početak u traženom periodu, a ističe u toku ili posle tog perioda.

Code (sql):

SELECT COUNT(*) FROM booking
WHERE (booking_date <= '2015-12-12' AND retruning_date >= '2015-12-12')
     OR (booking_date BETWEEN '2015-12-12' AND '2015-12-15')
 


Ako ovaj upit vrati 0 onda je auto slobodan, a ako vrati više od nula auto nije slobodan u tom periodu...

Ako umesto count staviš samo * onda ćeš dobiti sve rezervacije koje nam se seku sa traženim periodom (ili upit neće vratiti ništa ako je auto slobodan).

Tvoja aplikacija treba da interpretira ove odgovora i da prikaže na zgodan način rezultat.