Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 3 odgovora
  • 4.700 pregleda

Najnovija ↓

vrijednost sledeceg zapisa u sql 01.03.2005. u 08:09 · pre 263 meseca #1
Imam problem koji ne znam kako da rijesim.

Naime imam tabelu na SQL Serveru:

Zauzeto do datum(date) Slobodno do datuma
Zauzeto od datum Zauzeto do datum Slobodno od datuma Slobodno do datuma
10.05.2005 15.01.2005 15.01.2005 20.01.2005 ?
20.01.2005 23.01.2005 23.01.2005 ............ ?
Aplikaciju radim u VB.NET-u,medjutim ne znam kako doci do vrijednosti «Slobodno do datuma»,probao sam preko TSQL-a , ADO.NET-a ali ne ide, trebalo bi od ovakve tabele da napravim DataSet.Znaci vrijednost polja «Slobodno do datuma»treba da predstavlja vrijednost sledeceg zapisa polja "Zauzeto od datum".Bilo kakva pomoc dobro bi dosla.



Re: vrijednost sledeceg zapisa u sql 04.03.2005. u 00:52 · pre 263 meseca #2
Ne valja ti tabela Coce. Svako polje ti zavisi od nekog drugog polja u istom rekordu, a neka polja zavise i od polja u prethodnom (ili narednom) rekordu. razmisli o promeni dizajna strukture tabela koje imas.

:-)
Re: vrijednost sledeceg zapisa u sql 04.03.2005. u 07:45 · pre 263 meseca #3
Ali upravo je to problem, sto ne znam kako da mi vrijednost polja u tekucem zapisu odgovara vrijenosti polja sledeceg zapisa.Dobro bi mi dosao neki primjer ako si u mogucnosti.


SELECT X,Y,Z AS (JENAKO X U SLEDECEM ZAPISU)OVO JE PROBLEM)?
FROM TABELA

U svakom slucaju zahvaljujem na odgovoru.
Re: vrijednost sledeceg zapisa u sql 04.03.2005. u 17:31 · pre 263 meseca #4
Posto si iz podgorice, verovatno radis neku bazu koja cuva podatke o raspolozivosti soba u hotelu ili slicno. Verovatno zelis da pokazes u nekom momentu kada su sobe slobodne a kada zauzete. Nisam nikada radio baze za turizam, ali su opsta pravila uvek ista - cuvaju se samo sirovi podaci. Sve sto se moze izracunati, ne cuva se u tabelema. kako mi se cini, u tabeli bi trebao da cuvas samo sledeca polja:

RezervacijaID
SobaID,
DatumOdKadJeSobaZauzeta
BrojdanaKolikoceSobaBitiZauzeta

Sada, kad neko hoce da rezervise sobu od nekog datuma X, u trajanju od Y dana, ti proveris u tabeli da li postoji rezervacija koja uzima deo intervala (X,X+Y). Ako nema konflikta, primis rezervaciju, u protivnom, odbijes. Ova analiza treba da se obavi u nekom triggeru, na samom SQL serveru (jel' bese SQL server u pitanju). Ako ovo proradi, neces moci da unses konfliktne rezervacije. U tom slucaju prikazivanje kad je soba slobodna -zauzeta, bilo bi relativno jednostavno:

SELECT
A.SobaID,
ZauzetaOD = A.DatumOdKadJeSobaZauzeta,
ZauzetaDo = A.DatumOdKadJeSobaZauzeta+A.BrojdanaKolikoceSobaBitiZauzeta,
SlobodnaOD = A.DatumOdKadJeSobaZauzeta+A.BrojdanaKolikoceSobaBitiZauzeta
SlobodnaDO =
(SELECT MIN(B.DatumOdKadJeSobaZauzeta)
FROM tblRezervacije AS B
WHERE B.DatumOdKadJeSobaZauzeta>A.DatumOdKadJeSobaZauzeta)

FROM tblRezervacije AS A

SlobodnaDO dakle jeste najmanji od svih datuma kada pocinje neka rezervacija a koji su veci od tekuceg datuma. Mozda negde treba da se doda +1, zavisi kako definises slobodnu sobu - da li je soba slobodna poslednjeg dana rezervacije, ili tek od sutra?


Dalje ne znam.

:-)


Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme