Šiame straipsnyje aiškinama, kaip naudoti didžiausių reikšmių užklausas ir užklausų sumų užklausas, kad būtų galima ieškoti naujausių arba anksčiausių įrašų rinkinio datų. Tai gali padėti atsakyti į įvairius verslo klausimus, pvz., kai klientas paskutinį kartą pateikė pavedimą, arba kurį penkis ketvirčius geriausia parduoti, pagal miestą.
Šiame straipsnyje
Apžvalga
Galite klasifikuoti duomenis ir peržiūrėti aukščiausio lygio elementus naudodami didžiausių reikšmių užklausą. Didžiausios reikšmės užklausa yra pasirinkimo užklausa, kuri pateikia nurodytą skaičių arba reikšmių procentą iš rezultatų viršaus, pvz., penkių populiariausių žiniatinklio svetainės puslapių. Didžiausių reikšmių užklausą galite naudoti bet kokios rūšies reikšmėms – jos neturi būti skaičių.
Jei norite sugrupuoti ar apibendrinti duomenis prieš jį klasifikuoti, nereikia naudoti didžiausių reikšmių užklausos. Pavyzdžiui, Tarkime, kad jums reikia surasti konkrečios datos pardavimo numerius kiekvienam miestui, kuriame veikia jūsų įmonė. Šiuo atveju miestai tampa kategorijomis (jums reikia surasti duomenis per miestą), todėl galite naudoti sumų užklausą.
Kai naudojate didžiausių reikšmių užklausą, kad rastumėte žurnalus, kuriuose yra vėliausios arba anksčiausios lentelės ar įrašo grupės datos, galite atsakyti į įvairius verslo klausimus, pvz., šiuos:
-
Kas pastaruoju metu pardavė didžiąją pardavimo dalį?
-
Kada klientas paskutinį kartą buvo užsakymas?
-
Kada yra kitos trys gimtadieniai komandai?
Norėdami sukurti didžiausios reikšmės užklausą, pradėkite sukūrę pasirinkimo užklausą. Tada Surikiuokite duomenis pagal klausimą – nesvarbu, ar ieškote viršaus, ar apačios. Jei reikia sugrupuoti duomenis arba apibendrinti duomenis, pasirinkite užklausą į sumų užklausą. Tada galite naudoti agregavimo funkciją, pvz., Max arba min , kad būtų grąžinta didžiausia arba mažiausia reikšmė, arba pirmoji arba Paskutinė , kuri pateiks anksčiausią arba vėliausią datą.
Šiame straipsnyje daroma prielaida, kad jūsų naudojamų datų reikšmės turi datos/laiko duomenų tipą. Jei datos reikšmės yra teksto lauke,.
Naudokite filtrą vietoj didžiausių reikšmių užklausos
Filtras paprastai yra geresnis, jei tai yra konkreti data. Norėdami nustatyti, ar turite sukurti didžiausių reikšmių užklausą, ar taikyti filtrą, atsižvelkite į šiuos dalykus:
-
Jei norite grąžinti visus duomenis, kurių data sutampa, prieš arba vėliau, o ne konkrečią datą, naudokite filtrą. Pavyzdžiui, Norėdami matyti pardavimo datas tarp balandžio ir liepos, taikote filtrą.
-
Jei norite pateikti nurodytą įrašą, kuriame yra naujausios arba vėliausios lauko datos, o jūs nežinote tikslių datų reikšmių arba jos nesvarbių, sukuriate didžiausių reikšmių užklausą. Pavyzdžiui, norėdami pamatyti penkis geriausius pardavimo ketvirčius, naudokite didžiausių reikšmių užklausą.
Daugiau informacijos apie filtrų kūrimą ir naudojimą ieškokite straipsnyje filtro taikymas, kad būtų galima peržiūrėti pažymėti įrašus "Access" duomenų bazėje.
Duomenų pavyzdžių parengimas kartu su pavyzdžiais
Šiame straipsnyje aprašyti duomenys naudojami šių pavyzdžių lentelėse.
Lentelė darbuotojai
Pavardė |
Vardas |
Adresas |
Miestas |
Countryorr egion |
Gimimo data |
Nuomos data |
Končius |
Šarūnas |
1 Main St. |
Niujorkas |
JAV |
1968-02-05 |
1994-06-10 |
Vilutis |
Vytas |
52 1st St. |
Bostonas |
JAV |
1957-05-22 |
1996-11-22 |
Vilutis |
Saulis |
3122 75th Ave. S.W. |
Sietlas |
JAV |
1960-11-11 |
2000-03-11 |
Stasevičius |
Darius |
1 Contoso Blvd. |
Londonas |
UK |
1964-03-22 |
1998-06-22 |
Noreika |
Gintaras |
Calle Smith 2 |
Meksikas |
Meksika |
1972-06-05 |
2002-01-05 |
Jasaitytė |
Audra |
3122 75th St. S. |
Sietlas |
JAV |
1970-01-23 |
1999-04-23 |
Gražulis |
Romas |
67 Big St. |
Tampa |
JAV |
1964-04-14 |
2004-10-14 |
Pijūnaitė |
Adelė |
2 Nosey Pkwy |
Portlendas |
JAV |
1959-10-29 |
1997-03-29 |
Lentelė EventType
"TypeID" |
Įvykio tipas |
1 |
Produkto Paleistis |
2 |
Funkcija Corporate |
3 |
Funkcija Private |
4 |
Fondo Raiser |
5 |
Paroda "prekyba" |
6 |
Paskaita |
7 |
Koncertas |
8 |
Parašytą netikėti |
9 |
Gatvės mugė |
Lentelė Užsakovai
CustomerID |
Įmonė |
Kontaktinis asmuo |
1 |
UAB Contoso. Grafinis |
Jonathan Haas |
2 |
„Tailspin“ žaislai |
Ellen Adams |
3 |
Fabrikam |
Carol Philips |
4 |
"Wingtip" žaislai |
Lucio Iallo |
5 |
A. Datum |
Mandar Samant |
6 |
"Adventure Works" |
Brian Burke |
7 |
Dizaino institutas |
"Jaka Stele" |
8 |
Dailės mokykla |
Milena Duomanova |
Lentelė įvykiai
ĮvykioID |
Įvykio tipas |
Klientas |
Įvykio data |
Kaina |
1 |
Produkto Paleistis |
UAB Contoso. |
4/14/2011 |
$10.000 |
2 |
Funkcija Corporate |
„Tailspin“ žaislai |
4/21/2011 |
$8,000 |
3 |
Paroda "prekyba" |
„Tailspin“ žaislai |
2011 05 01 |
$25 000 |
4 |
Parašytą netikėti |
Grafikos dizaino institutas |
5/13/2011 |
4 500 EUR |
5 |
Paroda "prekyba" |
UAB Contoso. |
5/14/2011 |
$55 000 |
6 |
Koncertas |
Dailės mokykla |
5/23/2011 |
12 000 EUR |
7 |
Produkto Paleistis |
A. Datum |
6/1/2011 |
$15,000 |
8 |
Produkto Paleistis |
"Wingtip" žaislai |
6/18/2011 |
21 000 EUR |
9 |
Fondo Raiser |
"Adventure Works" |
6/22/2011 |
$1 300 |
10 |
Paskaita |
Grafikos dizaino institutas |
6/25/2011 |
$2 450 |
11 |
Paskaita |
UAB Contoso. |
04.07.11 |
$3 800 |
12 |
Gatvės mugė |
Grafikos dizaino institutas |
04.07.11 |
5 500 EUR |
Pastaba: Šiame skyriuje aprašyti veiksmai Tarkime, kad klientai ir įvykio tipo lentelės yra "vienas su daugeliu" ryšių su lentele įvykiai pusėje. Šiuo atveju lentelė įvykiai sutinka su laukais CustomerID ir TypeID. Kitos sekcijos aprašytos sumos užklausos neveiks be šių ryšių.
Pavyzdinių duomenų įklijavimas į „Excel“ darbalapius
-
Paleiskite programą „Excel“. Bus atidaryta tuščia darbaknygė.
-
Paspauskite SHIFT + F11, kad įterptumėte darbalapį (jums reikės keturių).
-
Nukopijuokite duomenis iš kiekvienos pavyzdinės lentelės į tuščią darbalapį. Įtraukite stulpelių antraštes (pirmoje eilutėje).
Duomenų bazės lentelių kūrimas naudojant darbalapius
-
Pažymėkite duomenis iš pirmojo darbalapio, įskaitant stulpelių antraštes.
-
Dešiniuoju pelės mygtuku spustelėkite naršymo sritį, tada spustelėkite Įklijuoti.
-
Spustelėkite Taip, kad patvirtintumėte, jog pirmoje eilutėje yra stulpelių antraštės.
-
Su kiekvienu iš likusių darbalapių pakartokite veiksmus nuo 1 iki 3.
Vėliausios arba vėliausios datos radimas
Šiame skyriuje aprašyti veiksmai naudoja duomenų pavyzdžius, kad parodytų didžiausių reikšmių užklausos kūrimo procesą.
Pagrindinių didžiausių reikšmių užklausos kūrimas
-
Skirtuko Kūrimas grupėje Užklausos spustelėkite Užklausos dizainas.
-
Dukart spustelėkite lentelę darbuotojai, tada spustelėkite uždaryti.
Jei naudojate duomenų pavyzdžius, įtraukite lentelę darbuotojai į užklausą.
-
Įtraukite laukus, kuriuos norite naudoti užklausoje į dizaino tinklelį. Galite dukart spustelėti kiekvieną lauką arba vilkti ir numesti kiekvieną lauką tuščiame eilutės laukas langelyje.
Jei naudojate lentelės pavyzdį, įtraukite laukus vardas, pavardė ir gimimo data.
-
Lauke, kuriame yra didžiausios arba mažiausios reikšmės (laukas gimimo data, jei naudojate lentelės pavyzdį), spustelėkite eilutę rikiuoti ir pasirinkite didėjimo tvarka arba mažėjimo tvarka.
Mažėjančia rūšiavimo tvarka pateikia vėliausią datą, o didėjimo tvarka pateikia anksčiausią datą.
Svarbu: Turite nustatyti reikšmę eilutėje rikiuoti tik laukuose, kuriuose yra jūsų datų. Nurodžius kito lauko rūšiavimo tvarką, užklausa nepateiks norimų rezultatų.
-
Skirtuko dizainas grupėje Įrankiai spustelėkite rodyklę žemyn šalia Visi ( didžiausių reikšmių sąrašas), tada įveskite norimų matyti įrašo skaičių arba pasirinkite parinktį iš sąrašo.
-
Spustelėkite vykdyti , kad paleistumėte užklausą ir parodytumėte rezultatus duomenų lapo rodinyje.
-
Įrašykite užklausą kaip Nextondays.
Galite matyti, kad šio tipo didžiausios reikšmės užklausa gali atsakyti į pagrindinius klausimus, pvz., kas yra seniausias arba jauniausias įmonės asmuo. Kituose veiksmuose paaiškinama, kaip naudoti reiškinius ir kitus kriterijus, kad būtų galima įtraukti užklausos galią ir lankstumą. Kituose žingsniuose nurodyti kriterijai – pateikti kitų trijų darbuotojų gimtadienius.
Kriterijų įtraukimas į užklausą
Šie veiksmai naudoja užklausą, sukurtą naudojant ankstesnę procedūrą. Galite stebėti kartu su skirtinga didžiausių reikšmių užklausa tol, kol joje yra faktiniai datos/laiko duomenys, o ne teksto reikšmės.
Patarimas: Jei norite geriau suprasti, kaip veikia ši užklausa, kiekviename žingsnyje perjunkite dizaino rodinį ir duomenų lapo rodinį. Jei norite matyti faktinį užklausos kodą, perjunkite į SQL rodinį. Norėdami perjungti rodinius, dešiniuoju pelės mygtuku spustelėkite užklausos viršuje esantį skirtuką, tada spustelėkite norimą rodinį.
-
Naršymo srityje dešiniuoju pelės mygtuku spustelėkite užklausą Nextgimtadiendays, tada spustelėkite dizaino rodinys.
-
Užklausos dizaino tinklelio stulpelyje, esančiame į dešinę nuo gimimo datos, parašykite:
monthborn: DatePart ("m", [Gimimo_data]).
Ši išraiška išskleidžia mėnesį nuo gimimo datos naudojant funkciją DatePart . -
Paskesniame užklausos dizaino tinklelio stulpelyje, atlikite šiuos veiksmus:
dayofmonthborn: DatePart ("d", [Gimimo_data])
Šis reiškinys išskleidžia mėnesio dieną nuo gimimo datos naudojant funkciją DatePart . -
Išvalykite žymės langelius, esančius eilutėje Rodyti , už kiekvieną ką tik įvestus reiškinius.
-
Spustelėkite kiekvienos išraiškos eilutę Rūšiuoti , tada pasirinkite didėjimo tvarka.
-
Stulpelio gimimo data eilutėje kriterijai įveskite šį reiškinį:
Month ([gimimo data]) > Month (Date ()) arba Month ([gimimo data]) = Month (Date ()) ir Day ([gimimo data]) >Day (data ())
Šis reiškinys:-
Month ( [gimimo data]) > mėnuo (data ()) nurodo, kad kiekvieno darbuotojo gimimo data yra būsimame mėnesyje.
-
Mėnuo ( [gimimo data]) = Month (Date ()) ir diena ([gimimo data]) >diena (data ()) nurodo, kad jei gimimo data yra dabartiniame mėnesyje, gimtadienis nukrenta arba po esamos dienos.
Trumpai tariant, į šį reiškinį neįtraukiami jokie duomenys, kai gimtadienis prasideda nuo sausio 1 iki dabartinės datos.
Patarimas: Daugiau užklausos kriterijų išraiškų pavyzdžių ieškokite straipsnyje užklausos kriterijų pavyzdžiai.
-
-
Skirtuko dizainas grupėje užklausos sąranka įveskite 3 lauke grąžinimas .
-
Skirtuko Dizainas grupėje Rezultatai spustelėkite Vykdyti .
Pastaba: Jūsų paties užklausoje naudodami savo duomenis, kartais galite matyti daugiau duomenų nei nurodėte. Jei jūsų duomenyse yra keli duomenys, kurie bendrina reikšmę tarp didžiausių reikšmių, jūsų užklausa pateiks visus tokius duomenis, net jei tai reiškia, kad bus grąžinti daugiau duomenų, nei norėjote.
Raskite naujausias ir mažiausias datų grupių datas
Sumų užklausą galite naudoti norėdami surasti anksčiausią arba vėliausią įrašams, kurie patenka į grupes, pvz., pagal miestą sugrupuoti įvykiai. Sumų užklausa yra pasirinkimo užklausa, kuri naudoja agregavimo funkcijas (pvz., Grupuoti pagal, M, Maks, skaičiavimas, pirmojiir Paskutinė) , kad apskaičiuotų kiekvieno išvesties lauko reikšmes.
Įtraukite lauką, kurį norite naudoti kategorijose – Norėdami grupuoti pagal – ir lauką, kuriame yra norimos sumuoti reikšmės. Jei įtraukiate kitus išvesties laukus – tarkim, klientų vardus, kai grupuojate pagal įvykio tipą – užklausa taip pat naudos tuos laukus, kad grupės, pakeistų rezultatus, kad jie neatsakytų į jūsų pirminį klausimą. Norėdami žymėti eilutes naudodami kitus laukus, sukuriate papildomą užklausą, kuri naudoja sumų užklausą kaip šaltinį, ir įtraukite papildomų laukų į tą užklausą.
Patarimas: Kūrimo užklausos atliekant veiksmus yra labai efektyvi strategija, padėsiantys atsakyti į sudėtingesnius klausimus. Jei kyla problemų bandant atlikti sudėtingą užklausą, apsvarstykite, ar galite ją nutraukti į supaprastinto užklausų seriją.
Sumų užklausos kūrimas
Atliekant šią procedūrą naudojamas lentelės įvykių pavyzdys ir eventtype pavyzdys , kad atsakytumėte į šį klausimą:
Kada buvo paskutinis kiekvieno įvykio tipo įvykis, neįskaitant koncertų?
-
Skirtuko Kūrimas grupėje Užklausos spustelėkite Užklausos dizainas.
-
Dukart spustelėkite lenteles įvykiai ir EventType.
Kiekviena lentelė rodoma užklausos dizainerio viršutinėje sekcijoje. -
Dukart spustelėkite lentelės EventType lauką EventType ir lauką EventDate iš lentelės įvykiai, kad įtrauktumėte laukus į užklausos dizaino tinklelį.
-
Užklausos dizaino tinklelyje, lauko Eventtype eilutėje kriterijai įveskite <>koncertą.
Patarimas: Daugiau kriterijų išraiškų pavyzdžių ieškokite straipsnyje užklausos kriterijų pavyzdžiai.
-
Skirtuko dizainas grupėje Rodyti/slėpti spustelėkite sumos.
-
Užklausos dizaino tinklelyje spustelėkite lauko EventDate eilutę suma ir spustelėkite Maks.
-
Skirtuke Dizainas grupėje Rezultatai spustelėkite Rodinys, tada spustelėkite SQL rodinys.
-
SQL lange, dalies SELECT sąlygoje, iškart po raktažodžio kaip, pakeiskite Maxofeventdate su " mostrecent".
-
Įrašykite užklausą kaip MostRecentEventByType.
Antrosios užklausos kūrimas norint įtraukti daugiau duomenų
Šioje procedūroje naudojamos užklausos MostRecentEventByType užklausos iš ankstesnės procedūros, kad atsakytumėte į šį klausimą:
Kas buvo klientas paskutiniame kiekvieno įvykio tipo renginyje?
-
Skirtuko Kūrimas grupėje Užklausos spustelėkite Užklausos dizainas.
-
Skirtuke užklausos dukart spustelėkite MostRecentEventByType užklausą.
-
Skirtuke lentelės dukart spustelėkite lentelę įvykiai ir lentelę Klientai.
-
Užklausos dizaineryje dukart spustelėkite šiuos laukus:
-
Lentelėje Events dukart spustelėkite EventType.
-
Užklausoje MostRecentEventByType dukart spustelėkite MostRecent.
-
Lentelėje Klientai dukart spustelėkite įmonė.
-
-
Užklausos dizaino tinklelyje, stulpelio Eventtype eilutėje Rūšiuoti , pasirinkite didėjimo tvarka.
-
Skirtuko Dizainas grupėje Rezultatai spustelėkite Vykdyti.