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

Problem oko view-a u postgre SQL-u

[es] :: PostgreSQL :: Problem oko view-a u postgre SQL-u

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

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

dejantomasevic
Beograd,Srbija

Član broj: 228071
Poruke: 63
*.prointer.rs.



Profil

icon Problem oko view-a u postgre SQL-u20.02.2015. u 09:36 - pre 70 meseci
Imam sledeću tabelu iz baze podataka:

CREATE TABLE rezv(
id char(8) NOT NULL,
ime char(25) NOT NULL,
prezime char(25) NOT NULL,
idtip numeric(2) NOT NULL,
soba char(4),
datodl date NOT NULL,
datdol date NOT NULL,
rbr numeric(3) NOT NULL,
iduslu char(3),
iznos char(10),
poredak numeric(3) NOT NULL,
bez_zasebnog_kreveta char(1) DEFAULT '0'::bpchar,
rata numeric(12,2) DEFAULT 0,
podgrupa varchar(30),
CONSTRAINT "PK_NAJDET" PRIMARY KEY (id, rbr, poredak)
)

Obzirom da trebam brojati goste po zauzeću soba, imam problem.U tabeli imam sledeće podatke datdol-kao datum dolaska i datodl kao datum odlaska.Obzirom da sistem u tabelu upisuje samo ta dva datuma ja nemam stavrnu evidenciju kada su ti gosti prisutni, tj. ako npr. gost dođe u apartman 10.03.2015 i ode 14.03.2015, ja imam samo evidenciju za ta dva datuma a nemam podatak da će on biti prisutan i 11.03, 12.03.,13.03.Dakle trebao bih da napravim view koji bi ispisivao sve datume između 10.03 i 14.03, pa da nad njim napravim SQL upit koji bi brojao zauzeća.SQL upit mi nije problem, ali je problem kako da uradim view i kako da ispišem sve datume kada je gost boravio u apartmanu.Zamolio bih za pomoć.

Unapred se zahvaljujem
 
Odgovor na temu

Željko
Željko Turbić
top of the mountain

Član broj: 16217
Poruke: 89
82.117.203.*



+6 Profil

icon Re: Problem oko view-a u postgre SQL-u20.02.2015. u 10:06 - pre 70 meseci
Ovako mozes prikazati datume izmedju dva datuma:

Select '2015-02-10'::date + z.date
From generate_series(0, 180) as z(date)
Where '2015-02-10'::date + z.date BETWEEN '2015-02-10'::date and '2015-03-15'::date;

U ovom upitu se koristi serija od 180(dana) kao max. Ako ti treba veci range mozes povecati seriju ili napraviti posebnu tabelu.
Ako tvojim upitom nad 'rezv' tabelom mozes izvuci od-do datume, onda ces moci i da ispises datume izmedju tih datuma.


pozdrav,
Zeljko


 
Odgovor na temu

dejantomasevic
Beograd,Srbija

Član broj: 228071
Poruke: 63
*.prointer.rs.



Profil

icon Re: Problem oko view-a u postgre SQL-u20.02.2015. u 13:17 - pre 70 meseci
Hvala Željko na pomoći do sada, ali mislim da se nisam na najbolji način izrazio:
Ja imam sql upit

select n.datdol as datum, count(*) as brojsoba from najave n
left join najdet naj on n.id = naj.id
WHERE n.datodl >=current_date and n.datodl<='2015-03-30' and naj.rbr = 1
group by n.datdol
order by datum

datodl- datum odlaska
datdol-datum dolaska u apartman
rbr-ako je rbr jednako 1 znači da je soba zauzeta, nebitno da li posle ima rbr 2 ili 3(rbr broji goste u sobi).
Meni treba upit koji će da izbroji broj soba koje su zauzete nebitno da li ima jednog, dva ili tri gosta.
Problem je što u tabeli imam samo dva zapisa o tom gostu kada dolazi i kada odlazi.
Meni je potrebno da brojim broj prodatih soba po datumu, npr ako gost dođe u sobu 10.03 a odlazi 14.03 potrebno je da tog gosta broji da je tu i 11.03 i 12.03 i 13.03 iako nemam evidentirane datume o prisustvu tog gosta(11.03-13.03), tog gosta treba da beležim da mu je prodata soba.

Datum Broj_prodatih_soba
2015-03-10 1
2015-03-11 1
2015-03-12 1
2015-03-13 1
2015-03-14 0
2015-03-15 11
2015-03-16 15

Iz upita koji sam ja naveo nemogu to da uradim jer on prikazuje da je soba prodata onog dana kada je gost došao u apartman
 
Odgovor na temu

brzak

Član broj: 66407
Poruke: 126



+5 Profil

icon Re: Problem oko view-a u postgre SQL-u20.02.2015. u 18:54 - pre 70 meseci
select pu.datum, count(*)-1 as broj
from
(
select soba,generate_series(datdol,datodl,'1 day'::interval) as datum
from rezv
union
select '0',generate_series('2015-03-01','2015-03-30','1 day'::interval) as datum
) as pu
group by pu.datum
order by pu.datum

Ovaj upit vraca broj rezervisanih soba '2015-03-01' - '2015-03-30'
 
Odgovor na temu

[es] :: PostgreSQL :: Problem oko view-a u postgre SQL-u

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

Postavi temu Odgovori

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