Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Uporedjivanje cetiri datuma.....

[es] :: Baze podataka :: Uporedjivanje cetiri datuma.....

[ Pregleda: 2379 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

era1

Član broj: 77875
Poruke: 155
*.ptt.yu.



Profil

icon Uporedjivanje cetiri datuma.....28.07.2006. u 16:01 - pre 215 meseci
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...
 
Odgovor na temu

rafiki
Beograd

Član broj: 48988
Poruke: 275



+63 Profil

icon Re: Uporedjivanje cetiri datuma.....28.07.2006. u 16:59 - pre 215 meseci
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
 
Odgovor na temu

jablan

Član broj: 8286
Poruke: 4541



+711 Profil

icon Re: Uporedjivanje cetiri datuma.....28.07.2006. u 17:24 - pre 215 meseci
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
 
Odgovor na temu

era1

Član broj: 77875
Poruke: 155
*.ptt.yu.



Profil

icon Re: Uporedjivanje cetiri datuma.....28.07.2006. u 19:45 - pre 215 meseci
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
 
Odgovor na temu

[es] :: Baze podataka :: Uporedjivanje cetiri datuma.....

[ Pregleda: 2379 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.