Odštampajte tekst Odštampajte tekst

Miško u epizodi: Upiti sa filterom

vozi_misko_2.jpgPreuzmite bazu “Vozi Miško” i provežbajte zadatke u vezi sa filtriranjem i sortiranjem.
Sve nedoumice, probleme i uočene greške iznesite u vidu komentara na ovu stranicu.

 

 

query1.gifNapraviti upit koji prikazuje sve autobuse koji imaju više od 25 a manje od 80 mesta.
Evo kako pristupiti rešavanju ovakvih zadataka:
1. Najpre treba da znate u kojim tabelama su trazeni podaci. U ovom slučaju u pitanju samo jedna tabela - Autobusi.
2. Zatim treba da znate koje podatke želite da prikažete tj. koje će sve kolone imati rezultujuća tabela. U ovom zadatku to nije precizirano, kaže se samo autobusi, pa imate slobodu da sami izaberete koje sve karakteristike autobusa želite da prikažete, a ja sam odabrao Registraciju i Broj mesta.
3. Treba da vidite na koju kolonu ili kolone se odnose uslovi za filtriranje. Ovde se uslov odnosi na kolonu Broj mesta: “broj mesta je veći od 25 a manji od 80″.
4. Formulišite kriterijum koristeći operatore koje smo učili.
U ovom slučaju uslov glasi: >25 And <80.

Rezultat izgleda ovako: query_resenje1.gif

 

Malo komplikovaniji zadatak glasi:
query2.gifPrikazati sve autobuse koji imaju vise od 25 i manje od 80 mesta, a registrovani su u Beogradu
Ovde se kriterijum filtriranja odnosi na dve kolone. Na kolonu Broj mesta, tu uslov glasi: >25 And <80 i na kolonu Registracija, koja mora da počinje sa BG, što se piše ovako: Like BG*

 

 

 

 

Evo i primera koji zahteva da koristimo podatke iz više tabela:
Napravite spisak autobusa koji nisu smešteni u Beogradu. Spisak treba da sadrži Registraciju, broj mesta, datum nabavke, datum remonta, naziv garaže i mesto garaže, i da bude sortiran po starosti autobusa, od najstarijeg ka najnovijem autobusu.
Koristićemo više tabela. Spisak kolona koje želimo da vidimo je dat u zadatku - tu nemamo dileme. Izveštaj treba da sortiramo po datumu nabavke i to u rastućem redosledu (Acsending). A uslov za filtriranje glasi “Mesto garaze nije Beograd”, što se na Access-ovom jeziku kaže na neki od slede’ih načina: Not Beograd ili <>Beograd ili Not = Beograd

query3.gif

Rezultujuća tabela mogla bi da izgleda ovako:
query_resenje3.gif

 

query4.gif

Gazda Krstić želi da vidi spisak vozača koji trenutno nisu na putu tj. čiji su autobusi parkirani. Spisak treba da bude složen po abecednom redu. Kao što se vidi na slici, koristimo ime vozača iz tabele Vozači, i izveštaj sortiramo po toj koloni. Iz tabele Autobusi uzimamo podatak da li je autobus parkiran. Nama trebaju samo oni koji jesu parkirani, pa kriterijum glasi Yes. Mada bi moglo i True, ako ste nostalgični prema Excelovim logičkim konstantama True i False.  Može i =Yes ili =True.
Ovu kolonu ne prikazujemo (kvadratić Show smo odštiklirali) jer je gazda želeo da vidi samo imena, a i u toj koloni bi svi podaci bili isti (tj. Yes).
Uopšte nije greška ako ovu koloni ipak prikažete!

 

query5.gifZbog izbegavanja nekih administrativnih komplikacija gazda Miško želi da vidi spisak autobusa koji su registrovani u Beogradu a nisu smešteni u Beogradu. Oba uslova sam već objasnio, sada smo ih samo spojili kao što je prikazano na slici. query5_resenje.gif Sa podacima koje sam ja uneo rezultat ovog upita je samo jedan autobus.

Evo još nekoliko kriterijuma filtriranja koji bi mogli da se odnose na datum nabavke:
Like *.7.*  kupljeni u Julu bilo koje godine
>= 1.1.2006 And <= 31.12.2006  kupljeni tokom 2006. godine, isto je i:
Like *.*.2006
< 1.1.2007 
kupljeni pre 2007-me

Na bilo koji tekstualni podatak mogu da se odnose sledeći kriterijumi:
Like A*  počinje na A
Like *A*  sadrži A
Like ?A*  slovo A je drugo slovo
Like ???   reč koja ima tačno tri slova
Like *A  završava se na A
Not Like A*  ne počinje na A
Like B* Or Like A*  počinje na B ili na A
Like B* And Not Beograd  počinje na B ali nije Beograd
Beograd Or Uzice   svi iz Beograda kao i svi iz Uzica
Beogard And Uzice   jednako je Beograd i jednako je Uzice. Tako nesto ne postoji. Rezultat ovakvog filtera je prazan skup.

Ako vežbate, postavite sami pred sebe neki zahtev, pa ako vam se čini zanimljiv ili ne umete da ga rešite podelite ga sa svima u vidu komentara na ovu stranicu, pa ćemo ga zajedno rešiti.
 


2 komentara na “Miško u epizodi: Upiti sa filterom”

  1. Profesore, jel ovo nece biti na kontrolnom?

  2. Hoće.
    Jedan najprostiji mogući za 6 poena, i jedan normalan za 14 poena.

Napišite komentar:

Ukoliko prvi put komentarišete, komentar mora biti odobren pre nego što bude objavljen.