[ era1 @ 28.07.2006. 16:01 ] @
Sigurno ste 1000 puta vidjali na Web-u mogucnost rezervisanja hotelske sobe preko neta. E sad, na web strani unesete datum dolaska i datum odlaska, a zatim se te vrednosti uporedjuju sa vrednostim u bazi, da bi se proverilo da li u tom periodu ima slobodnih soba...

Ja pokusuvam da napravim nesto slicno. Bazu sam osmislio tako da ima (izmedju ostalog) tabela SMESTAJ (sa atributima telefon, kuhinja, klima..... i terminID) i tabela TERMINI (ID, dolazak, odlazak). Za svaku sobu iz tabele SMESTAJ se u tabelu TERMINI upisuju podaci vezani za datum dolaska i datum odlaska.

Na kraju treba da se vrednosti datuma sa web strane uporedjuju sa vrednostima u tabeli TERMINI i da se kao rezultat SQL upita prikazu sobe koje su slobodne u zahtevanom terminu!

Problem je sto ne mogu da sastavim SQL upit koji ce da zavrsi posao. Razne sam mogucnosti pokusavao, ali ne ide. Da li neko ima iskustvo sa ovim, kako se taj problem odradjuje? Da li sam mozda u startu krenuo pogresnim putem i mozda treba da menjam strukturu baze???

Znaci jos jednom ukratko: Rezimo da u bazi imamo terminDolaska 15.05 i terminOdlaska 25.05 (u tom intervalu je soba zauzeta), a korisnik na siteu trazi smestaj od 05.05. do 16.05. Sistem treba da provali da 16.05. ulazi u interval od 15.05-25.05 i da odbije korisnika!!! Kako da napisem ovaj upit u SQL-u???

===========================================

Probao sam sa sledecim upitom:("dolazakS" je datum dolaska koje je korisnik uneo na siteu, a "dolazakB" je vrednost u bazi, isto vazi i za "odlazakS" i "odlazakB")

SELECT...............WHERE ((dolazakB NOT BETWEEN dolazakS and odlazakS) and (odlazakB NOT BETWEEN dolazakS and odlazakS) and (dolazakS NOT BETWEEN dolazakB and odlazakB) and (dolazakS NOT BETWEEN dolazakB and odlazakB)

Ovo se najlakse razume kad se uzme kalendar u ruke :)))

Ali se javlja greska: Syntax error!!!

Pozdrav svima...
[ rafiki @ 28.07.2006. 16:59 ] @
Umesto odgovora postavicu ti jedno pitanje:

A jel' to mora da bude reseno u jednom SQL upitu?

Zar ne bi bilo lakse da logiku uradis u nekom programskom jeziku, ako nista drugo onda bar PL/SQL ili nesto slicno?

Napr:
Upit 1: Pronadji sve sobe koje su slobodne dana dolaska
Upit 2: Iz skupa koji vrati upit 1. pronadji one koje nece biti zauzete do dana odlaska
Upit 3: Odaberi jednu iz skupa koji vrati upit 2.

Pozdrav
[ jablan @ 28.07.2006. 17:24 ] @
Preformulisaću tvoj uslov, a ti se potrudi pa napiši upit, uopšte nije teško:

Za zadati vremenski interval od A do B, i interval kad je soba zauzeta od As do Bs, soba je slobodna ako je (As < A i Bs < A) ili (As > B i Bs > B)

Za neupućene, već je otvorio sličnu temu na http://www.elitesecurity.org/t...-sa-WebForm-sa-datumom-iz-baze
[ era1 @ 28.07.2006. 19:45 ] @
Pa tako sam i ja rekao tamo na .NET

Ali je problem bio sto sam umesto #1/1/2006# pisao #1.1.2006#

I eto, problem resen jednim upitom ;))

Dakle ako jos nekome zatreba ima na ovom linku iznad!

pozdrav svima