Ovaj članak objašnjava kako da koristite upite najviše vrednosti i upite za ukupne vrednosti da biste pronašli najnovije ili najranije datume u skupu zapisa. To vam može pomoći da odgovorite na mnoštvo poslovnih pitanja, na primer kada je klijent poslednji put poručio porudžbinu ili kojih pet kvartala su najbolje za prodaju, po gradu.
U ovom članku:
Pregled
Pomoću upita za najviše vrednosti možete rangirati podatke i pregledati stavke najvišeg rangiranja. Upit za najvišu vrednost je upit za izdvajanje koji daje navedeni broj ili procenat vrednosti sa vrha rezultata, na primer pet najpopularnijih stranica na veb lokaciji. Upit nad najvišim vrednostima možete da koristite u odnosu na bilo koju vrstu vrednosti – one ne moraju da budu brojevi.
Ako želite da grupišete ili rezimirate podatke pre nego što ih rangirate, ne morate da koristite upit za najviše vrednosti. Na primer, recimo da treba da pronađete brojeve prodaje za dati datum za svaki grad u kojem preduzeće radi. U tom slučaju, gradovi postaju kategorije (morate da pronađete podatke po gradu), tako da koristite upit zbirova.
Kada koristite upit za najviše vrednosti da biste pronašli zapise koji sadrže najnovije ili najranije datume u tabeli ili grupi zapisa, možete da odgovorite na mnoštvo poslovnih pitanja, kao što su sledeća:
-
Ko je u poslednje vreme imao najveću prodaju?
-
Kada je klijent poslednji put poručio porudžbinu?
-
Kada su sledeća tri rođendana u timu?
Da biste kreirali upit za najvišu vrednost, počnite tako što ćete kreirati upit za izdvajanje. Zatim sortirajte podatke prema vašem pitanju – bilo da tražite vrh ili dno. Ako treba da grupišete ili rezimirate podatke, pretvorite upit za izdvajanje u upit zbirova. Zatim možete da koristite agregatnu funkciju, na primer Maksimum ili Min da biste dobili najveću ili najnižu vrednost ili prvu ili poslednju da biste dobili najraniji ili najnoviji datum.
Ovaj članak pretpostavlja da vrednosti datuma koje koristite imaju tip podataka "Datum/vreme". Ako se vrednosti datuma nalaze u tekstualnom polju, .
Razmotrite korišćenje filtera umesto upita sa najvišim vrednostima
Filter je obično bolji ako imate određeni datum na umu. Da biste utvrdili da li treba da kreirate upit za najviše vrednosti ili da primenite filter, razmotrite sledeće:
-
Koristite filter ako želite da vratite sve zapise u kojima se datum podudara, pre ili posle određenog datuma. Na primer, da biste videli datume prodaje između aprila i jula, primenite filter.
-
Ako želite da dobijete navedenu količinu zapisa koji imaju najnovije ili najnovije datume u polju, a ne znate tačne vrednosti datuma ili nisu važni, kreirajte upit za najviše vrednosti. Na primer, da biste videli pet najboljih kvartala prodaje, koristite upit za najviše vrednosti.
Više informacija o kreiranju i korišćenju filtera potražite u članku Primena filtera za prikaz izabranih zapisa u Access bazi podataka.
Priprema uzorka podataka za praćenje zajedno sa primerima
Koraci u ovom članku koriste podatke iz sledećih uzoraka tabela.
Tabela "Zaposleni"
|
Prezime |
Ime |
Adresa |
Grad |
CountryOrR egion |
Datum rođenja |
Datum zapošljavanja |
|
Blagojević |
Jordan |
Glavna 1 |
Novi Sad |
USA |
05.05.1968. |
10. jun 1994. |
|
Heloo (heloo) |
Šmecer |
Prva ulica 1052 |
Subotica |
USA |
22-maj 1957. |
22-Nov-1996 |
|
Tica |
Gvido |
3122 75.ave. S.W. |
Sombor |
USA |
11-Nov-1960 |
11-mar-2000 |
|
Pecivo |
Žan Filip |
Bulevar oslobođenja 1 |
Kragujevac |
UK |
22-mar-1964 |
22. jun 1998. |
|
Cenić |
Dћulijan |
Saša Simić 2 |
Meksiko Siti |
Meksiko |
05-jun-1972 |
05.05.2002. |
|
Hjuz |
Kristina |
3122 75th St. S. |
Sijetl |
USA |
23-jan-1970. |
23-apr-1999 |
|
Rajli |
Stiv |
Velika 67 |
Valjevo |
USA |
14-apr-1964 |
14-okt-2004 |
|
Birkby |
Dana |
2 Nosi Pkwy |
Smederevo |
USA |
29-okt-1959 |
29-mar-1997 |
Tabela "EventType"
|
ID tipa |
Tip događaja |
|
1 |
Pokretanje proizvoda |
|
2 |
Funkcija "Corporate" |
|
3 |
Funkcija "Private" |
|
4 |
Prikupljanje sredstava |
|
5 |
Sajam |
|
6 |
Predavanje |
|
7 |
Koncert |
|
8 |
Izloћba |
|
9 |
Ulični sajam |
Tabela „Kupci“
|
ID klijenta |
Preduzeće |
Kontakt |
|
1 |
Contoso d.o.o. Grafiku |
Džonatan Haas |
|
2 |
Igračke VrtiRep |
Jelena Adams |
|
3 |
Fabrikam |
Carol Philips |
|
4 |
Igračke krila |
Lucio Iallo |
|
5 |
A. Datum |
Mandar Samant |
|
6 |
Avanturistički poduhti |
Brian Burke |
|
7 |
Institut za dizajniranje |
Jaka Stele |
|
8 |
Škola likovnih umetnosti |
Milena Duomanova |
Tabela "Događaji"
|
IDDogađaja |
Tip događaja |
Kupac |
Datum događaja |
Cenić |
|
1 |
Pokretanje proizvoda |
Contoso d.o.o. |
4/14/2011 |
10.000 din. |
|
2 |
Funkcija "Corporate" |
Igračke VrtiRep |
4/21/2011 |
8.000 din. |
|
3 |
Sajam |
Igračke VrtiRep |
01.05.11. |
25.000 USD |
|
4 |
Izloћba |
Institut za grafički dizajn |
5/13/2011 |
$4,500 |
|
5 |
Sajam |
Contoso d.o.o. |
5/14/2011 |
55.000 USD |
|
6 |
Koncert |
Škola likovnih umetnosti |
5/23/2011 |
12.000 RSD |
|
7 |
Pokretanje proizvoda |
A. Datum |
6/1/2011 |
15.000 din. |
|
8 |
Pokretanje proizvoda |
Igračke krila |
6/18/2011 |
21.000 RSD |
|
9 |
Prikupljanje sredstava |
Avanturistički poduhti |
6/22/2011 |
1.300 USD |
|
10 |
Predavanje |
Institut za grafički dizajn |
6/25/2011 |
2.450 USD |
|
11 |
Predavanje |
Contoso d.o.o. |
04.07.11. |
3.800 USD |
|
12 |
Ulični sajam |
Institut za grafički dizajn |
04.07.11. |
5.500 RSD |
Napomena: Koraci u ovom odeljku pretpostavljaju da se tabele "Klijenti" i "Tip događaja" nalaze na strani "jedan" relacija jedan-prema-više sa tabelom "Događaji". U ovom slučaju, tabela "Događaji" deli polja "ID klijenta" i "TypeID". Upiti za ukupne vrednosti opisani u sledećim odeljcima neće raditi bez tih relacija.
Lepljenje uzorka podataka u Excel radne listove
-
Pokrenite Excel. Otvara se prazna radna sveska.
-
Pritisnite kombinaciju tastera SHIFT+F11 da biste umetnuli radni list (biće vam potrebno četiri).
-
Kopirajte podatke iz svake probne tabele u prazan radni list. Uključite naslove kolona (prvi red).
Kreiranje tabela baze podataka od radnih listova
-
Izaberite podatke sa prvog radnog lista, uključujući naslove kolona.
-
Kliknite desnim tasterom miša na okno za navigaciju, a zatim izaberite stavku Nalepi.
-
Kliknite na dugme Da da biste potvrdili da prvi red sadrži naslove kolona.
-
Ponovite korake od 1. do 3. za svaki preostali radni list.
Pronalaženje najkasnijeg ili najmanjeg datuma
Koraci u ovom odeljku koriste uzorak podataka za ilustrovanje procesa kreiranja upita za najviše vrednosti.
Kreiranje upita osnovnih najviših vrednosti
-
Na kartici Kreiranje, u grupi Upiti kliknite na dugme Dizajn upita.
-
Kliknite dvaput na tabelu "Zaposleni", a zatim kliknite na dugme Zatvori.
Ako koristite uzorak podataka, dodajte tabelu "Zaposleni" u upit.
-
Dodajte polja koja želite da koristite u upitu u koordinatnu mrežu dizajna. Možete da kliknete dvaput na svako polje ili da prevučete i otpustite svako polje u praznoj ćeliji u redu Polje.
Ako koristite probnu tabelu, dodajte polja Ime, Prezime i Datum rođenja.
-
U polju koje sadrži najviše ili najniže vrednosti (polje Datum rođenja, ako koristite uzorak tabele), kliknite na red Sortiraj i izaberite stavku Rastući redosled ili Opadajući redosled.
Opadajući redosled sortiranja daje najnoviji datum, a Rastući redosled sortiranja daje najraniji datum.
Važno: Vrednost u redu Sortiranje morate postaviti samo za polja koja sadrže datume. Ako navedete redosled sortiranja za drugo polje, upit neće vratiti željene rezultate.
-
Na kartici Dizajn, u grupi Alatke kliknite na strelicu nadole pored stavke Sve (lista Najviše vrednosti) i unesite broj zapisa koji želite da vidite ili izaberite opciju sa liste.
-
Kliknite na dugme
da biste pokrenuli upit i prikazali rezultate u prikazu lista sa podacima. -
Sačuvajte upit kao NextBirthDays.
Možete da vidite da ovaj tip upita najvažnijih vrednosti može da odgovori na osnovna pitanja, kao što je ko je najstarija ili najmlađi korisnik u preduzeću. Sledeći koraci objašnjavaju kako se koriste izrazi i drugi kriterijumi za dodavanje moći i fleksibilnosti u upit. Kriterijumi prikazani u sledećem koraku daju sledeća tri rođendana zaposlenih.
Dodavanje kriterijuma u upit
Ovi koraci koriste upit kreiran u prethodnoj proceduri. Možete da pratite različit upit najviše vrednosti sve dok sadrži stvarne podatke o datumu/vremenu, a ne tekstualnim vrednostima.
Savet: Ako želite da bolje razumete kako funkcioniše ovaj upit, prebacite se između prikaza dizajna i prikaza lista sa podacima u svakom koraku. Ako želite da vidite stvarni kôd upita, prebacite se na SQL prikaz. Da biste se prebacivali između prikaza, kliknite desnim tasterom miša na karticu na vrhu upita, a zatim izaberite željeni prikaz.
-
U oknu za navigaciju kliknite desnim tasterom miša na upit NextBirthDays, a zatim izaberite stavku Prikaz dizajna.
-
U koordinatnoj mreži za dizajn upita, u kolonu sa desne strane stavke DatumRođenja unesite sledeće:MonthBorn: DatePart("m",[BirthDate]).Ovaj izraz izdvaja mesec iz datumaRođanja pomoću funkcije DatePart .
-
U sledeću kolonu koordinatne mreže za dizajn upita unesite sledeće:DayOfMonthBorn: DatePart("d",[BirthDate])Ovaj izraz izdvaja dan u mesecu iz datumaRođenja pomoću funkcije DatePart .
-
Opozovite izbor u poljima za potvrdu u redu Prikaži za svaki od dva izraza koja ste upravo uneli.
-
Kliknite na red Sortiraj za svaki izraz, a zatim izaberite stavku Rastući redosled.
-
U redu Kriterijumi kolone Datum rođenja otkucajte sledeći izraz:Month([Datum Rođenja]) > Month(Date()) OR Month([Birth Date])= Month(Date()) AND Day([Birth Date])>Day(Date())Ovaj izraz radi sledeće:
-
Month( [Datum rođenja]) > Month(Date()) navodi da datum rođenja svakog zaposlenog pada u budući mesec.
-
The Month([Birth Date])= Month(Date()) And Day([Birth Date])>Day(Date()) navodi da ako se datum rođenja pojavi u tekućem mesecu, rođendan pada na trenutni dan ili posle trenutnog dana.
Ukratko, ovaj izraz isključuje sve zapise u kojima se rođendan dešava između 1. januara i trenutnog datuma.
Savet: Više primera izraza kriterijuma upita potražite u članku Primeri kriterijuma upita.
-
-
Na kartici Dizajn, u grupi Podešavanje upita otkucajte 3u polju Vraćanje.
-
Na kartici Dizajn, u grupi Rezultati kliknite na dugme Pokreni
.
Napomena: U sopstvenom upitu pomoću sopstvenih podataka ponekad ćete možda videti više zapisa nego što ste naveli. Ako podaci sadrže više zapisa koji dele vrednost koja je među najvažnijim vrednostima, upit će vratiti sve takve zapise čak i ako to znači vraćanje više zapisa nego što ste želeli.
Pronalaženje najnovijih ili najnovijih datuma za grupe zapisa
Upit zbirova koristite da biste pronašli najranije ili najnovije datume za zapise koji spadaju u grupe, kao što su događaji grupisani po gradu. Upit zbirova je upit za izdvajanje koji koristi agregatne funkcije (kao što su Grupiši po, Min, Maksimum,Broj, Prvi i Poslednji) za izračunavanje vrednosti za svako izlazno polje.
Uključite polje koje želite da koristite za kategorije – za grupisanje – i polje sa vrednostima koje želite da rezimirate. Ako uključite druga izlazna polja – recimo, imena klijenata kada grupišete po tipu događaja – upit će koristiti i ta polja za pravljenje grupa, menjajući rezultate tako da ne odgovore na originalno pitanje. Da biste označili redove pomoću drugih polja, kreirajte dodatni upit koji koristi upit zbirova kao izvor i dodajte dodatna polja u taj upit.
Savet: Izrada upita u koracima je veoma efikasna strategija za odgovaranje na naprednija pitanja. Ako imate problema prilikom rada složenog upita, razmislite o tome da li možete da ga razdete u niz jednostavnijih upita.
Kreiranje upita zbirova
Ova procedura koristi uzorak tabele "Događaji" i uzorak tabele "EventType" da bi odgovorila na ovo pitanje:
Kada je bio najnoviji događaj svakog tipa događaja, isključujući koncerte?
-
Na kartici Kreiranje, u grupi Upiti kliknite na dugme Dizajn upita.
-
Kliknite dvaput na tabele "Događaji" i "EventType". Svaka tabela se pojavljuje u gornjem odeljku dizajnera upita.
-
Kliknite dvaput na polje EventType tabele i polje "EventDate" iz tabele "Događaji" da biste dodali polja u koordinatnu mrežu za dizajn upita.
-
U koordinatnoj mreži za dizajn upita , u red Kriterijumi polja EventType unesite<> Koncert.
Savet: Više primera izraza kriterijuma potražite u članku Primeri kriterijuma upita.
-
Na kartici Dizajn, u grupi Prikaži/sakrij kliknite na dugme Zbirovi.
-
U koordinatnoj mreži za dizajn upita kliknite na red Zbir polja "Datum Događaja", a zatim izaberite stavku Maksimum.
-
Na kartici Dizajn, u grupi Rezultati, kliknite na dugme Prikaz, a zatim izaberite stavku SQL prikaz.
-
U SQL prozoru, na kraju odredbe SELECT, odmah iza ključne reči AS, zamenite MaxOfEventDate sa MostRecent.
-
Sačuvajte upit kao MostRecentEventByType.
Kreirajte drugi upit da biste dodali još podataka
Ova procedura koristi upit MostRecentEventByType iz prethodne procedure da bi odgovorila na ovo pitanje:
Ko je bio klijent na najnovijem događaju svakog tipa događaja?
-
Na kartici Kreiranje, u grupi Upiti kliknite na dugme Dizajn upita.
-
Na kartici Upiti kliknite dvaput na upit MostRecentEventByType.
-
Na kartici Tabele kliknite dvaput na tabelu "Događaji" i tabelu "Klijenti".
-
U dizajneru upita kliknite dvaput na sledeća polja:
-
U tabeli "Događaji" kliknite dvaput na dugme EventType.
-
U upitu MostRecentEventByType kliknite dvaput na stavku MostRecent.
-
U tabeli "Klijenti" kliknite dvaput na dugme Preduzeće.
-
-
U koordinatnoj mreži za dizajn upita, u redu Sortiranjekolone EventType izaberite stavku Rastući redosled.
-
Na kartici Dizajn, u grupi Rezultati kliknite na dugme Pokreni.