Witam.
Chciałem stworzyć tabele wypożyczenia do wypożyczalni samochodów. Ale jest pewien problem ponieważ jeżeli np klient A wypożyczy samochód na 5 dni to według mojego kodu Klient B może wypożyczyć ten sam samochód. Pytanie jak zrobić żeby w tym samym czasie nie mogły być wypożyczone te same samochody?
CREATE TABLE rezerwacje (
nrSamochodu INT NOT NULL,
dataNabycia DATE NOT NULL,
dataOddania DATE NOT NULL,
idKlienta INT NOT NULL,
PRIMARY KEY (nrSamochodu, dataNabycia),
CHECK (dataNabycia <= dataOddania)
);
insert into rezerwacje(nrSamochodu,dataNabycia,dataOddania,idKlienta) values (1,'2020-11-12','2020-11-18',1);
insert into rezerwacje(nrSamochodu,dataNabycia,dataOddania,idKlienta) values (3,'2020-10-10','2020-11-18',2);
insert into rezerwacje(nrSamochodu,dataNabycia,dataOddania,idKlienta) values (2,'2020-11-12','2020-11-13',3);
insert into rezerwacje(nrSamochodu,dataNabycia,dataOddania,idKlienta) values (1,'2020-11-16','2020-11-22',4);
insert into rezerwacje(nrSamochodu,dataNabycia,dataOddania,idKlienta) values (5,'2020-11-15','2020-12-20',1);
insert into rezerwacje(nrSamochodu,dataNabycia,dataOddania,idKlienta) values (3,'2020-10-09','2020-10-10',1);
select * From rezerwacje WHERE nrSamochodu in(select nrSamochodu from rezerwacje group by nrSamochodu having min(dataNabycia) < max(dataNabycia));