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

kako logicki da razumem problem sa datumima?

[es] :: Access :: kako logicki da razumem problem sa datumima?

Strane: 1 2

[ Pregleda: 4171 | Odgovora: 21 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Srbin do jaja

Član broj: 219428
Poruke: 80
78.155.59.*



+2 Profil

icon kako logicki da razumem problem sa datumima?25.08.2009. u 21:45 - pre 118 meseci
evo u cemu je stvar. recimo da postoji rent a car, hotel, ili bilo sta drugo sto koristi od do datum i zelim da proverim period van tog (tih) intervala kada je nesto dostupno/slobodno. pa sad ne znam kako logicki da pridjem problemu da u accessu napravim upit koji ce mi dati kada je svako vozilo/sobu/bilo sta drugo dostupno (od kog datuma do kog datuma).
na primer auto 1 moze biti iznajmljen 1.8.2009. do 5.8.2009 pa opet iznajmljen 8.8.2009. do 10.8.2009. a recimo danas je 3.8.2009. i sad ja pokrenem upit i on treba da mi pokaze slobodan je od 6.8.2009 do 7.8.2009 i od 11.8.2009 pa nadalje.

hvala unapred

ps ne posedujem neko veliko znanje programiranja u accessu. samo neke osnove.
Nemam pojma šta da stavim u potpis!
 
Odgovor na temu

smal
Slobodan Maljković
Kragujevac, Srbija

Član broj: 228672
Poruke: 286
*.dynamic.sbb.rs.



+13 Profil

icon Re: kako logicki da razumem problem sa datumima?26.08.2009. u 00:41 - pre 118 meseci
Citat:
Srbin do jaja: i sad ja pokrenem upit i on treba da mi pokaze slobodan je od 6.8.2009 do 7.8.2009 i od 11.8.2009 pa nadalje.
ps ne posedujem neko veliko znanje programiranja u accessu. samo neke osnove.


Ako ti je samo ovo problem, onda mislim da nema potrebe da potežeš Access. MS Outlook i njegov kalendar je, čini mi se, primereniji takvim zadacima.
Em je lep i šaren, em što ne moraš da znaš programiranje i baze podataka :) Sa dva klika napraviš upit kojim dobijaš željenu informaciju...

Naravno, ukoliko je navedeni problem delić neke veće aplikacije, onda daj i nešto više podataka (koji podaci, kakve tabele...), pa da mozgamo...


 
Odgovor na temu

Take 5

Član broj: 200551
Poruke: 1423
77.46.213.*



+12 Profil

icon Re: kako logicki da razumem problem sa datumima?26.08.2009. u 01:34 - pre 118 meseci
^^ To mu dođe kao npr. evidencija video kluba...
U tabeli promet koja ima sledeća polja:
•šifra objekta koji se izdaje
•datum zaduženja
•datum razduženja

Treba da proveriš sledeći uslov: Da li u tabeli promet postoji polje sa šifrom objekta a da je datum razduženja prazan?
Objekat nije razdužen (znači da je zauzet), a ako ne postoji u toj tabeli sa takvim uslovom znači da je slobodan

Možda bi pomoglo i polje "zaduženje", tipa: true/false ...mada bi verovatno bilo nepotreban višak(?)
"Take Five" is the famous jazz piece written by Paul Desmond and performed by The Dave Brubeck Quartet. It is famous for its distinctive saxophone line and use of the unusual quintuple (5/4) time, from which its name is derived.

Take Five (1966)

Take Five by Al Jarreau 1976
 
Odgovor na temu

Getsbi

Moderator
Član broj: 124608
Poruke: 2724



+32 Profil

icon Re: kako logicki da razumem problem sa datumima?26.08.2009. u 08:13 - pre 118 meseci
Da bi dobio informaciju koji su to dani slobodni, moraš imati neku tabelu sa datumima. Nešto kao kalendar. Ubacio sam dane od 31.07.2009 do 15.08.2009 i tvoje periode zauzetosti. Pokreni upit "qrySviSlobodniDani".
Prikačeni fajlovi
 
Odgovor na temu

chachka
Srđan Mijatov
Programer
BUS Computers
Kikinda

Član broj: 53780
Poruke: 575
212.200.221.*

Sajt: www.baze-podataka.net


+4 Profil

icon Re: kako logicki da razumem problem sa datumima?26.08.2009. u 08:50 - pre 118 meseci
Čini mi se da je na ovakvo pitanje dat uopšten odgovor u temi SQL mozgalica broj 4. Možda nije loše da se pogleda i ta tema.
"The best code is no code at all." - Zidar (ES član)
"Biggest obstacle to learning SQL is unlearning procedural programming." - Joe
Celko
"Minimize code, maximize data." - A. Neil Pappalardo
 
Odgovor na temu

Srbin do jaja

Član broj: 219428
Poruke: 80
78.155.59.*



+2 Profil

icon Re: kako logicki da razumem problem sa datumima?26.08.2009. u 21:59 - pre 118 meseci
Citat:
Da bi dobio informaciju koji su to dani slobodni, moraš imati neku tabelu sa datumima. Nešto kao kalendar. Ubacio sam dane od 31.07.2009 do 15.08.2009 i tvoje periode zauzetosti. Pokreni upit "qrySviSlobodniDani".


postoji malo problemcic kod tvog predloga. prvo recimo da ima vise razlicitih vozila i kad pokrenem qviri da vidim koja su slobodna pokazace mi sve datume koji nisu zauzeti al necu znati koje vozilo je slobodno. i da li je to moguce uraditi da se vidi period. tipa vozilo te i te registracije slobodno je od 6.8.2009 do 7.8.2009.
pa ponovo slobodno od 11.8.2009. do 31.12.2100. jer ako ubacim bar jos jedno vozilo sa razlicitim datumima, ima cu jednu dugacku nepreglednu listu.

nadam se da ovo sto sam napisao ima nekog smisla.

al daj da postavim tabele bar.
Code:

tblCustomer: Customer ID (PK) Name LastName Address City
tblVehicles: Vehicle License (PK) 
tblBooking: Vehicle License Customer ID
tblDates: Dates



Nemam pojma šta da stavim u potpis!
 
Odgovor na temu

Scelle
Slavko Šćekić
Student, Računarski fakultet
Beograd

Član broj: 151761
Poruke: 174
95.155.29.*



Profil

icon Re: kako logicki da razumem problem sa datumima?27.08.2009. u 09:36 - pre 118 meseci
Meni je Zidar jednom davno pokusoa da objasni logiku datuma ovdje:
http://www.elitesecurity.org/t276216-0#1642790
"Takozvani praktični ljudi bili bi korisni i zasluživali bi svaku pohvalu i poštovanje kad od te svoje praktičnosti ne bi hteli da naprave smisao života i razlog svoga opstanka, opravdanje za podjarmljivanje i terorisanje svih onih koji su lišeni toga praktičnog smisla, ali zato stvoreni za druge, možda više i bolje podvige."

Ivo Andric
 
Odgovor na temu

Zidar
Canada

Moderator
Član broj: 15387
Poruke: 3082
*.100.46-69.q9.net.



+78 Profil

icon Re: kako logicki da razumem problem sa datumima?27.08.2009. u 14:52 - pre 118 meseci
@ Srbin do jaja: problem koji resavas nije jednostavan niti je za pocetnika, pa mozda i ne bude sve jasno. U stvari iams dva problema:
1) kako u SQL raditi sa datumima i intervalima
2) kako to isprogramirati u Accessu

- Getsbi ti je dao resenje koje se verovatno najlakse realizuje.
- Postoji i drugi nacin, bez upotrebe kalendar tabele,a li je mnogo komplikovano. Nesto od toga se moze videti u mozgalici na koju te uputio Chachka.
- Scelle ti je dao dobar link za razumevanje intervala, vid pretposlednju poruku. medjutim, ti na prvi pogled nemas uporedjenje intervala nego zelis da vidis sve dane kada je neko vozilo slobodno.

Znaci, ostaje ti ono od Getsbiaj, da se doradi. Primeti da Getsbijevo resenje na kraju daje listu dana kada je vozilo slobodno. Ta lista ne sadrzi sve kalendarske dane, izbaceni su oni kad je vozilo zauzeto. Intervali se mogu izvaditi iz liste, ali su kveriji komplikovani.

Ako ti treba resenje za konkretan projekat, daj zakaci konkretnu bazu sa stvarnim tabelama i nesto podataka, pa cemo pokusati da napisemo konkretne kverije i ne pitaj nista dalje.

Ako je pitanje teorijsko, kao ucis za ispit ili slicno, ponovo, daj konkretnu bazu sa konkretnim tabelama (bez razmaka u imenima tabela i kolona, please) pa cemo pokusati da razmotrimo nekoliko resenja. Nije fer da Getsbi sam sastavlja bazu da bi ti utvrdio da njegove tabele nisu kao sto si ti zamislio.

Dakle, daj bazu sa konkretnim podacima i kazi da li je u pitanju skolski rad ili konkretan projekat. U oba slucaja cemo ti pomoci, jer je problem suvise tezak i ne mozemo ti reci 'idi procitaj neku knjigu o Accesu, pa se javi za neki mesec'. Ovo uglavnom nema u knjigama.
 
Odgovor na temu

Zidar
Canada

Moderator
Član broj: 15387
Poruke: 3082
*.100.46-69.q9.net.



+78 Profil

icon Re: kako logicki da razumem problem sa datumima?27.08.2009. u 22:17 - pre 118 meseci
Evo da dopunimo Getsbijevo resenje i da pokazemo i drugi nacin.

Kveriji qryZauzeceVozila_G i qryZauzeceVozlia_Z su dva nacina prikazivanja zauzetosti vozila. I jedan i drugi nacin imaju prednosti i mane jedan nad drugim, u smislu prikaza i citljivosti rezultata. Kad bih ja radio aplikaciju, oba nacina bi nasla primenu, direktno ovako ili kao osnova za druge prikaze podataka.

Oba nacina su relativno komplikovana za pisanje. Query Grid ne pomaze niti wizardi. Kako sve radi? Krenite unazad i gledajte koji kveri ulazi u SQL za onaj koji posmatrate.

Prikačeni fajlovi
 
Odgovor na temu

captPicard
programer
more i planine

Član broj: 216084
Poruke: 1119



+19 Profil

icon Re: kako logicki da razumem problem sa datumima?28.08.2009. u 09:32 - pre 118 meseci
Vidim da si dobio već dosti odgovora, ali evo kako ja to radim, možda ti pomogne...

(Popis soba koje su slobodne na određeni dan)

Code:
'select j.sifra, j.naziv, j.sifra_str str, t.naziv struktura ' +
      'from sobe j, strukture t ' +
      'where j.sifra_str=t.sifra and j.sifra_so= :sifraobj
      ' and not exists  ' +
      '(select sifra_sj ' +
      '    from check_in  ' +
      '    where check_in.sifra_sj = j.sifra  ' +
      '    and :zadatum
      ' between check_in.datum_od and check_in.datum_do) ' +
      'and ' +
      'not exists( ' +
      '    select s.sifra_sj ' +
      '    from rezervacije_sj s, rezervacije r ' +
      '    where ' +
      '    s.broj_rez=r.broj and  ' +
      '    s.sifra_sj = j.sifra ' +
      '    and r.oznaka = ''p'' ' +
      '    and :zadatum
      ' between r.dolazak and r.odlazak) order by sifra';


[Ovu poruku je menjao captPicard dana 29.08.2009. u 15:06 GMT+1]
F
 
Odgovor na temu

Srbin do jaja

Član broj: 219428
Poruke: 80
77.222.29.*



+2 Profil

icon Re: kako logicki da razumem problem sa datumima?29.08.2009. u 20:31 - pre 118 meseci
ne treba mi nista konkretno. malo se igram sa accessom, gledam tutoriale na youtubu i citam help iz samo accessa. samo me uhvatila znatizelja. interesovalo me je na koji nacim moram logicki da razmisljam ne bi li resio ovakav problem na jednostavan nacin. al ocigledno da je problem slozeniji.
Nemam pojma šta da stavim u potpis!
 
Odgovor na temu

Getsbi

Moderator
Član broj: 124608
Poruke: 2724



+32 Profil

icon Re: kako logicki da razumem problem sa datumima?31.08.2009. u 17:14 - pre 118 meseci
Proverio sam fajl Iznajmljivanje_Get_Zid.rar - 14.44k. Rešenje je impresivno. Moram da priznam da bih ja stao na pola i pribegao pisanju VBA koda nad tabelom tblIznajmljivanje radi postizanja iole prihvatljivog rešenja

 
Odgovor na temu

Srbin do jaja

Član broj: 219428
Poruke: 80
*.crnagora.net.



+2 Profil

icon Re: kako logicki da razumem problem sa datumima?31.08.2009. u 23:55 - pre 118 meseci
@Iznajmljivanje_Get_Zid.rar - 14.44k

mislim da treba jos jedan uslov u qryPregledZauzecaVozilaOstaliRedovi.
Code:
SELECT A.AutomobilID, A.DatumPocetka AS ZuzetOd, A.DatumZavrsetka AS ZauzetDo, 
A.DatumZavrsetka+1 AS SlobodanOd, (SELECT MIN(DatumPocetka) 
FROM tblIznajmljivanje As B 
WHERE A.AutomobilID = B.AutomobilID 
AND B.DatumPocetka > A.DatumZavrsetka)-1 AS SlobodanDo
FROM tblIznajmljivanje AS A
ORDER BY A.AutomobilID, A.DatumPocetka;


evo sta se desava. na primer, kada VS-222-333 je zauzet 1.8.2009 do recimo 2.8.2009 a ponovno je zauzet 3.8.2009 do ne bitno sada kojeg datuma. i kad se pokrene ovaj uput, access ce pokazati sledece automobilID VS-222-333, ZauzetOd 1.8.2009, ZauzetDo 2.8.2009, SlobodanOd: 3.8.2009, SloobodanDo: 2.8.2009


sta se desava, slobodanOd uzima prethodni zauzetDo i dodaje jedan dan, a slobodniDo uzima sledeci zauzetOd i oduzima jedan dan. i tako dolazi do apsurda prvo da je datum slobodanOd isti kao i zauzetOd sledeceg unosa, kao i da je slobodanDo manju od slobodanOd.


pretpostavljam da se ovo moze resiti sa nekom IF ili IIF funkcijom. malo sam ceprkao po access help file, samo ja ne znam kako. ipak znam samo neke najjednostavnije stvari iz sql.

ako ima jedan dan izmedju zauzetDo i zauzetOd sledeceg unosa, onda upit lepo pokaze slobodanOd i SlobodanDo (upisan je isti datum) sto je ok.
Nemam pojma šta da stavim u potpis!
 
Odgovor na temu

Zidar
Canada

Moderator
Član broj: 15387
Poruke: 3082
*.100.46-69.q9.net.



+78 Profil

icon Re: kako logicki da razumem problem sa datumima?01.09.2009. u 13:42 - pre 118 meseci
@Srbin do jaja: u pravu si. Svaka cast na zapazanju i razumevanju logike upita.

Kveri lepo radi za sve slucajeve koji imaju konacen inervale Od-Do. Za slucajeve kad je OD ili DO neodredjen, moraje se pisati posebni upiti koji s eposle 'nalepe' na osnovni. Ja sam to uradio za neodredjeno OD, ali nisam za DO. Trenutno imamo negde u kverijima nesto sa UNION, treba nam jos jedan UNION. Ako stignem danas, uardicu i taj deo.

:-)
 
Odgovor na temu

captPicard
programer
more i planine

Član broj: 216084
Poruke: 1119



+19 Profil

icon Re: kako logicki da razumem problem sa datumima?01.09.2009. u 13:52 - pre 118 meseci
Citat:
Zidar: @Srbin do jaja: u pravu si. Svaka cast na zapazanju i razumevanju logike upita.

Kveri lepo radi za sve slucajeve koji imaju konacen inervale Od-Do. Za slucajeve kad je OD ili DO neodredjen, moraje se pisati posebni upiti koji s eposle 'nalepe' na osnovni. Ja sam to uradio za neodredjeno OD, ali nisam za DO. Trenutno imamo negde u kverijima nesto sa UNION, treba nam jos jedan UNION. Ako stignem danas, uardicu i taj deo.



Sada bubam, ne radim baš puno u Access-u, ali možda je moguće napraviti slijedeće:

Ako datum nije definiran uzmi datum 31.12.3000 (u drugim bazama postoji funkcija COALESCE) i onda ako je taj datum,
sa iif se definira iif(datum_do = '31.12.3000', 'nepoznato', datum_do)

A slučaj kada je Datum_od nedefiniran a Datum_do definiran se ne bi smio dogoditi, makar se može riješiti na sličan način.

Ako sam bubnuo glupost, ispričavam se...
F
 
Odgovor na temu

Zidar
Canada

Moderator
Član broj: 15387
Poruke: 3082
*.100.46-69.q9.net.



+78 Profil

icon Re: kako logicki da razumem problem sa datumima?01.09.2009. u 13:59 - pre 118 meseci
Povlacim prethodni post, nije problem u poslednjem, problem je u unutrasnjem delu. Ono dodavanje +1 ili -1 sa datumima je 'tricky'. Pogledacu, pa cu se javiti. Moguce je da je potreban potpuno drugaciji pristup. Ne volim da upotrebljavam IIF u kveriju, ali videcemo, kad su datumi u pitanju nema pravila.
 
Odgovor na temu

Zidar
Canada

Moderator
Član broj: 15387
Poruke: 3082
*.100.46-69.q9.net.



+78 Profil

icon Re: kako logicki da razumem problem sa datumima?01.09.2009. u 16:52 - pre 118 meseci
Kao sto sam mislio, mora da se promeni pristup kompletno. Evo resenja koje ne pravi gresku kad se intervali zauzetosti dodiruju (jedno izavanje zavrseno danas, i autio se izdaje vec sledeceg dana).

Kvari koji daje rezultate je qryZauzeceVozila. To je UNION sledecih kverija:
Code:

SELECT AutomobilID, Status, Od, Do
FROM (SELECT AutomobilID, Status, Od, Do
FROM qrySlobodniPrviRed
UNION ALL
SELECT AutomobilID, Status, Od, Do
FROM qryZauzeti
UNION ALL
SELECT AutomobilID, Status, Od, Do
FROM qrySlobodniSrednjiRedovi
UNION ALL
SELECT AutomobilID, Status, Od, Do
FROM qrySlobodniPoslednjiRed
)  AS X
ORDER BY AutomobilID, Od;

Svi kveriji u ovom izrazu dolaze direktno iz tblIZnajmljivanje osim qrySlobodniSrednjiRedovi. Taj dolazi iz qrySrednjiRedovi_B koji dolazi iz qrySrednjiRedovi_A koji dolazi iz tblIznajmljivanje.

Nije jednostavno, ali tu se ne moze nista.

Prikačeni fajlovi
 
Odgovor na temu

Zidar
Canada

Moderator
Član broj: 15387
Poruke: 3082
*.100.46-69.q9.net.



+78 Profil

icon Re: kako logicki da razumem problem sa datumima?01.09.2009. u 17:00 - pre 118 meseci
Evo i malo doterano resenje koje je dao Getsbi. Prikaz zauzeca na svaki kalendarski dan je jako lepa stvar za izvestaje.

Finalni kveri je qryAutomobilDan_Status. On dolazi iz qrySviZauzetDani i qryAutomobilDan. qrySviZauzetDani dolazi iz qryIznajmljivanje a ovaj iz (tblIznajmljivanje, tblAutomobili). qryAutomobilDan dolazi iz tblAutomobili i tblDatumi - dekartov proizvod automobila i dana.

Kveriji qrySviZauzetDani dolazi iz qryIznajmljivanje su isti koje je Getsbi dao u prvom resenju. tabelu tblDatumi sam popunio datumima od 1 Jan 2000 do neke 2017 godine. Datumi su napravljeni pomocu tabele brojeva, zBrojevi i kverija zqryNapraviDatume.


Treba mi neko vreme da pronadjem kako se od kverija qryAutomobilDan_Status pravi izlaz koji prikazuje intervale zauzeca, kao u prethodnom postu. kad se setim, zakacicu primer.

Prikačeni fajlovi
 
Odgovor na temu

Srbin do jaja

Član broj: 219428
Poruke: 80
78.155.48.*



+2 Profil

icon Re: kako logicki da razumem problem sa datumima?10.09.2009. u 18:29 - pre 118 meseci
imam jos jedno pitanje. nije konkretno u vezi ovog problema ali se tice datuma. kako treba da mi glasi criteria u upitu ako zelim da vidim podatke od recimo trenutnog datuma, pa unazad svi protekli dani tog meseca plus 11 meseci unazad ne razunajuci trenutni mesec jer vec racunamo dane tog meseca.
Nemam pojma šta da stavim u potpis!
 
Odgovor na temu

Zidar
Canada

Moderator
Član broj: 15387
Poruke: 3082
*.100.46-69.q9.net.



+78 Profil

icon Re: kako logicki da razumem problem sa datumima?11.09.2009. u 14:43 - pre 118 meseci
Citat:
zelim da vidim podatke od recimo trenutnog datuma, pa unazad svi protekli dani tog meseca plus 11 meseci unazad ne razunajuci trenutni mesec jer vec racunamo dane tog meseca.


Za interval trebaju ti dva datuma, Od i Do. Do je ocigledno danasnji datum. Od je neki datum u proslosti koji racunas po pravilu koje si izneo. Pogledaj funkcije DateAdd, dateDiff i slicno. Nesto ovako bi odradilo posao (pesudo kod)

Danasnji datum, bez sati, minuta, sekundi:
? date()
9/11/2009 ' format datuma kod mene je mm/dd/yyyy kod tebe ce se pojaviti verovatno 11.9.2009

Oduzimam 11 meseci od danasnjeg datuma:
? dateadd("m",-11, date())
10/11/2008
Dobio sam 11 Oktobar 2008, a meni treba 1 Oct

Znaci, treba da oduzmem onoliko dana koliko je proslo u ovom mesecu, i dodam 1.
(Kad se sabiraju/oduzimaju dani cesto treba dodati ili oduzeti jedinicu, pa probas dok ne upali)
? dateadd("m",-11, date()) - day(date())+1
10/1/2008 '1 Oktobar 2008, ono sto mi treba

Znaci, tvoj [Do] datum bi bio Date().
[OD] datum bi bio dateadd("m",-11, date()) - day(date())+1


Prouci funkcije za rad sa datumima
 
Odgovor na temu

[es] :: Access :: kako logicki da razumem problem sa datumima?

Strane: 1 2

[ Pregleda: 4171 | Odgovora: 21 ] > FB > Twit

Postavi temu Odgovori

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