Mõnikord on Accessis päringute koostamine ja kasutamine lihtne küsimus väljade valimisel tabelist, võib-olla mõne kriteeriumi rakendamisest ja seejärel tulemuste vaatamisest. Mida aga teha siis, kui vajalikud andmed jagatakse mitmesse tabelisse, nagu sagedamini juhtub? Õnneks saate koostada päringu, mis kombineerib mitmest allikast pärinevat teavet. Selles teemas uuritakse mõningaid stsenaariume, kus saate andmeid mitmest tabelist ja näitab, kuidas seda teha.
Selle artikli teemad
Seotud tabeli andmete kasutamine, et täiustada päringuga tagastatavat teavet
Võib tekkida olukord, kus ühe tabelil põhinev päring tagastab teile vajaliku teabe, kuid andmete võtmine mõnest teisest tabelist muudaks päringutulemid selgemaks ja kasulikumaks. Näiteks võidakse teie päringutulemis kuvada töötajate ID-de loend. Soovite tulemis kuvada ka töötajate nimed, kuid need andmed asuvad teises tabelis. Töötajate nimede päringutulemis kuvamiseks peate mõlemad tabelid päringusse kaasama.
Päringuviisardi abil primaartabeli ja seotud tabeli põhjal päringu loomine
-
Veenduge, et tabelitel oleks seoseaken määratletud seos.
Kuidas seda teha?
-
Klõpsake menüü Andmebaasiriistad jaotises Kuva/Peida nuppu Seosed.
-
Klõpsake menüü Kujundus jaotises Seosed nuppu Kõik seosed.
-
Määrake kindlaks tabelid, mille vahel peaks olema seos.
-
Kui tabelid on seoseaknas nähtaval, kontrollide kas nendevaheline seos on ikka määratletud.
Seos kuvatakse kahte tabelit ühisel väljal ühendava joonena. Seosejoone topeltklõpsamisel näete, millised tabelite väljad on seose abil ühendatud.
-
Kui tabelid pole seoseaknas nähtaval, peate need lisama.
Klõpsake menüü Kujundus jaotises Kuvamine/peitmine nuppu Tabelinimed.
Topeltklõpsake iga tabelit, mida soovite kuvada, ning seejärel klõpsake käsku Sule.
-
-
Kui te ei leia kahe tabeli vahel kehtivat seost, saate selle luua, lohistades esimese tabeli välja teise tabeli väljale. Seose loomisse kaasatud tabeliväljad peavad olema samast andmetüübist.
Märkus.: Saate luua seose andmetüüp Automaatnumber välja ja andmetüüp Arv välja vahel , kui sellel väljal on pikk täisarvuline väljasuurus. Sageli on see nii siis, kui loote üks-mitmele-seos.
Kuvatakse dialoogiboks Seoste redigeerimine.
-
Seose loomiseks klõpsake käsku Loo.
Lisateavet seoste loomisel kasutatavate suvandite kohta vaadake teemast Seose loomine, redigeerimine või kustutamine.
-
Sulgege aken Seosed.
-
-
Klõpsake menüü Loo jaotises Päringud nuppu Päringuviisard.
-
Klõpsake dialoogiboksis Uus päring väärtust Lihtpäringuviisard ja seejärel nuppu OK.
-
Klõpsake liitboksis Tabelid/päringud põhiteavet sisaldavat tabelit, mida soovite päringusse kaasata.
-
Klõpsake loendis Saadaolevad väljad esimest välja, mida soovite päringusse kaasata, ning seejärel klõpsake ühekordset paremnoolenuppu selle välja teisaldamiseks loendisse Valitud väljad. Korrake toimingut iga päringusse kaasatava tabeli välja jaoks. Need võivad olla päringuväljundis tagastatavad väljad või väljad, mille abil soovite kriteeriumi rakendamisega väljundis ridade arvu piirata.
-
Klõpsake liitboksis Tabelid/päringud seotud andmeid sisaldavat tabelit, mille abil soovite päringutulemeid täiustada.
-
Lisage päringutulemite täiustamiseks kasutatavad väljad loendisse Valitud väljad ja seejärel klõpsake nuppu Edasi.
-
Jaotises Kas soovite üksikasjalikku või kokkuvõtlikku päringut? klõpsake nuppu Üksikasjad või Kokkuvõte.
Kui te ei soovi, et päring teostaks kokkuvõttefunktsioone (Summa, Keskmine, Min, Max, Loendus, Standardhälve, või Dispersioon), valige üksikasjalik päring. Kui soovite, et päring teostaks kokkuvõttefunktsioone, valige kokkuvõtlik päring. Pärast valiku tegemist klõpsake nuppu Edasi.
-
Tulemite kuvamiseks klõpsake nuppu Valmis.
Näidisandmebaasi Põhjatuul kasutav näide
Järgmises näites kasutatakse päringuviisardit, et luua päring, mis kuvaks tellimuste loendit, tellimuse veomaksu ning tellimuse vastu võtnud töötaja nime.
Märkus.: Selles näites tuleb teha muudatusi näidisandmebaasis Põhjatuul. Soovitatav on näidisandmebaasist Põhjatuul varukoopia teha ning järgida näite juhiseid, kasutades varukoopiat.
Päringuviisardi abil päringu koostamine
-
Avage näidisandmebaas Põhjatuul. Sulgege sisselogimisvorm.
-
Klõpsake menüü Loo jaotises Päringud nuppu Päringuviisard.
-
Klõpsake dialoogiboksis Uus päring väärtust Lihtpäringuviisard ja seejärel nuppu OK.
-
Klõpsake liitboksis Tabelid/päringud käsku Tabel: Tellimused.
-
Topeltklõpsake loendis Saadaolevad väljad välja TellimuseID selle teisaldamiseks loendisse Valitud väljad. Topeltklõpsake välja Veomaks selle teisaldamiseks loendisse Valitud väljad.
-
Klõpsake liitboksis Tabelid/päringud käsku Tabel: Töötajad.
-
Topeltklõpsake loendis Saadaolevad väljad välja Eesnimi selle teisaldamiseks loendisse Valitud väljad. Topeltklõpsake välja Perekonnanimi selle teisaldamiseks loendisse Valitud väljad. Klõpsake nuppu Edasi.
-
Kuna koostate loendit kõikidest tellimustest, kasutage üksikasjalikku päringut. Kui summeerite veomakse töötajate järgi või rakendate mõnda muud kokkuvõttefunktsiooni, kasutage kokkuvõtlikku päringut. Klõpsake nuppu Üksikasjad (kuvab iga kirje kõik väljad) ja seejärel nuppu Edasi.
-
Tulemite kuvamiseks klõpsake nuppu Valmis.
Päring tagastab tellimusteloendi koos iga tellimuse veomaksu ning tellimust vastu võtnud töötaja ees- ja perekonnanimega.
Kahe tabeli andmete ühendamine, kasutades nende seoseid kolmanda tabeliga
Sageli on kahe tabeli andmeid üksteisega kolmanda tabeli kaudu seotud. Tavaliselt on selle põhjuseks kahe esimese tabeli vahel kehtiv mitu-mitmele-seos. Tihti on andmebaasi kujunduses soovitatav kahe tabeli vahel kehtiv mitu-mitmele-seos tükeldada kaheks üks-mitmele-seoseks. Selleks on vaja luua kolmas tabel (sõlmtabel e seosetabel), millel on iga kasutatava tabeli aoks primaarvõti ja välisvõti. Seejärel luuakse sõlmtabeli iga välisvõtme ja sellele vastava iga eelmise tabeli primaarvõtme vahele üks-mitmele-seos. Sellisel juhul peate kõik kolm tabelit päringusse kaasama, isegi kui soovite kasutada vaid kahe tabeli andmeid.
Mitu-mitmele-seost omavate tabelite abil valikupäringu koostamine
-
Klõpsake menüü Loo jaotises Päringud nuppu Päringu kujundus.
-
Topeltklõpsake kahte tabelit, mis sisaldavad andmeid, mida soovite päringusse kaasata, ja ka neid lingivat sõlmtabelit ning seejärel klõpsake nuppu Sule.
Kõik kolm tabelit kuvatakse päringukujunduse tööruumis ja tabelid on vastavatel väljadel ühendatud.
-
Topeltklõpsake iga välja, mida soovite kasutada päringutulemites. Väljad kuvatakse päringu kujundusruudustikus.
-
Kasutage päringu kujundusruudustikus väljakriteeriumite sisestamiseks rida Kriteeriumid. Välja kriteeriumi kasutamiseks ilma välja päringutulemites kuvamata tühjendage selle välja real ruut Kuva.
-
Tulemite sortimiseks välja väärtuste põhjal klõpsake päringu kujundusruudustikus vastava välja real Sortimine nuppu Tõusev järjestus või Laskuv järjestus (sõltuvalt sellest, kuidas soovite kirjed sortida).
-
Klõpsake menüü Kujundus jaotises Tulemid nuppu Käivita.
Access kuvab päringu väljundi andmelehevaates.
Näidisandmebaasi Põhjatuul kasutav näide
Märkus.: Selles näites tuleb teha muudatusi näidisandmebaasis Põhjatuul. Soovitatav on näidisandmebaasist Põhjatuul varukoopia teha ning järgida näite juhiseid, kasutades varukoopiat.
Oletame, et teile avaneb uus ärivõimalus: tarnija Rio de Janeiros on külastanud teie veebisaiti ning plaanib teiega äri alustada. Tarnija tegutseb aga vaid Rio de Janeiros ja selle lähedal asuvas São Paulos. Ettevõte tarnib kõiki teie poolt vahendatavaid toiduainekategooriaid. See on küllalt suur ettevõte ja soovib teie poolt kinnitust, et suudate neile kasumi tagamiseks piisavalt suuri müügivõimalusi pakkuda: vähemalt 9000.00 eurot müügisissetulekut aastas. Kas suudate pakkuda neile vajalikke turustamisvõimalusi?
Sellele küsimusele vastamiseks vajalikud andmed asuvad kahes kohas: tabelis Kliendid ja tabelis Tellimuse üksikasjad. Need kaks tabelit on omavahel ühendatud tabeliga Tellimused. Tabelitevahelised seosed on juba määratletud. Tabelis Tellimused saab igal tellimusel olla vaid üks klient, mis on tabeliga Kliendid seotud välja KliendiID kaudu. Tabeli Tellimuse üksikasjad iga kirje on seotud vaid ühe tabelis Tellimused asuva tellimusega välja TellimuseID kaudu. Seega saab antud kliendil olla mitu tellimust ja kõigil tellimustel on mitu tellimuse üksikasja.
Selles näites koostatakse ristpäring, mis kuvab aasta kogumüügi linnades Rio de Janeiro ja São Paulo.
Päringu koostamine kujundusvaates
-
Avage andmebaas Põhjatuul. Sulgege sisselogimisvorm.
-
Klõpsake menüü Loo jaotises Päringud nuppu Päringu kujundus.
-
Topeltklõpsake valikut Kliendid, Tellimused ja seejärel käskuTellimuse üksikasjad.
Kõik kolm tabelit kuvatakse päringukujunduse tööruumis.
-
Topeltklõpsake tabelis Kliendid välja Linn, et lisada see päringu kujundusruudustikku.
-
Tippige päringu kujundusruudustiku veeru Linn reale Kriteeriumid väärtus In ("Rio de Janeiro","São Paulo"). Selle tulemusel kaasatakse päringusse vaid kirjed, kus klient asub ühes neist linnadest.
-
Topeltklõpsake tabelis Tellimuse üksikasjad välju Tarnekuupäev ja Ühikuhind.
Väljad lisatakse päringu kujundusruudustikku.
-
Valige päringu kujundusruudustiku veerus Tarnekuupäev rida Väli. Asendage väärtus [Tarnekuupäev] väärtusega Format([ShippedDate],"yyyy"). Sellega luuakse väljapseudonüüm Aasta, mille abil saate kasutada vaid välja Tarnekuupäev aastaosa.
-
Valige päringu kujundusruudustiku veerus ÜhikuHind rida Väli. Asendage väärtus [ÜhikuHind] väärtusega Müük: [Tellimuse üksikasjad].[ÜhikyHind]*[Kogus]-[Tellimuse üksikasjad].[ÜhikuHind]*[Kogus]*[Allahindlus]. Sellega luuakse väljapseudonüüm Müük, mis arvutab müügi iga kirje jaoks.
-
Klõpsake menüü Kujundus jaotises Päringutüüp nuppu Ristpäring.
Päringu kujundusruudustikus kuvatakse kaks uut rida: Kogusumma ja Ristpäring.
-
Klõpsake päringu kujundusruudustiku veerus Linn rida Ristpäring ja seejärel klõpsake valikut Rea pealkiri.
Selle tulemusena kuvatakse linnade väärtused reapäistena (st päring tagastab iga linna kohta ühe rea).
-
Klõpsake veerus Aasta rida Ristpäring ja seejärel klõpsake valikut Veeru pealkiri.
Selle tulemusena kuvatakse aastate väärtused veerupäistena (st päring tagastab iga aasta kohta ühe veeru).
-
Klõpsake veerus Müük rida Ristpäring ja seejärel klõpsake valikut Väärtus.
Selle tulemusena kuvatakse müügiväärtused ridade ja veergude ristumispunktis (st päring tagastab iga linna ja aasta kombinatsiooni kohta ühe müügiväärtuse).
-
Klõpsake veerus Müük rida Kogusummad ja seejärel klõpsake valikut Summa.
Selle tulemusena summeerib päring selle veeru väärtused.
Teise kahe veeru jaoks võite kasutada rea Kogusummad väärtusena välja Rühmitusalus vaikeväärtust, kuna soovite kuvada nende veergude iga väärtust, mitte koondväärtusi.
-
Klõpsake menüü Kujundus jaotises Tulemid nuppu Käivita.
Koostatud päring tagastab kogumüügi aasta kohta Rio de Janeiros ja São Paulos.
Kahe sarnase tabeli kõigi kirjete kuvamine
Mõnikord on vaja kombineerida andmeid kahest identse struktuuriga tabelist, kuid üks neist asub teises andmebaasis. Vaatame järgmist näidet.
Oletame, et olete õpilaste andmetega tegelev analüütik. Alustate enda ja mõne teise kooli vahelist andmete ühiskasutuse programmi, mis aitaks parandada mõlema kooli õppekavu. Mõnede teemade uurimiseks oleks parem vaadata mõlema kooli kirjeid korraga, mitte eraldi.
Te võite küll teise kooli andmed enda andmebaasi uutesse tabelitesse importida, kuid teise kooli andmetesse tehtud muudatused ei kajastuks teie andmebaasis. Parem lahendus oleks teise kooli tabelitega ühendus luua ja koostada päringud, mis kasutavad käivitamisel kombineeritud andmeid. Sel juhul saate andmeid ühe kogumina analüüsida selle asemel, et viia läbi kaks analüüsi ja üritada neid ühena tõlgendada.
Kahe identse struktuuriga tabeli kõigi kirjete kuvamiseks kasutatakse ühispäringut.
Ühispäringuid ei saa kuvada kujundusvaates. Neid saate koostada SQL-vaate objekti vahekaardil sisestatavate SQL-käskude abil.
Ühispäringu loomine kahe tabeli abil
-
Klõpsake menüü Loo jaotises Päringud nuppu Päringu kujundus.
-
Klõpsake menüü Kujundus jaotises Päringutüüp nuppu Ühispäring.
Päring lülitub kujundusvaatest SQL-vaatesse. Praegu on SQL-vaate objekti vahekaart tühi.
-
Tippige SQL-vaates käsk SELECT (VALI) ja seejärel esimese päringusse kaasatava tabeli väljade loend. Väljanimed peavad olema nurksulgudes ja eraldatud komadega. Kui olete välja nimede tippimisega lõpetanud, vajutage sisestusklahvi (ENTER). Kursor liigub SQL-vaates järgmisele reale.
-
Tippige käsk FROM (TABELIST) ja seejärel esimese päringusse kaasatava tabeli nimi. Vajutage sisestusklahvi (ENTER).
-
Esimese tabeli mingile väljale kriteeriumi määramiseks sisestage käsk WHERE (KUS) ning seejärel välja nimi, võrdlusmärk (tavaliselt = (võrdusmärk)) ja kriteerium. Lisakriteeriumid saate sisestada WHERE-klausli lõppu, kasutades selleks võtmesõna AND ja esimese kriteeriumi sisestamisel kasutatud süntaksit (nt WHERE [KlassiTase]="100" AND [AinepunktTundi]>2). Kui olete kriteeriumide määratlemisega lõpetanud, vajutage sisestusklahvi (ENTER).
-
Tippige UNION ja vajutage sisestusklahvi (ENTER).
-
Tippige käsk SELECT (VALI) ja seejärel teise päringusse kaasatava tabeli väljade loend. Mõlemast tabelist peaksite kaasama samad väljad samas järjekorras. Väljanimed peavad olema nurksulgudes ja eraldatud komadega. Kui olete välja nimede tippimisega lõpetanud, vajutage sisestusklahvi (ENTER).
-
Tippige käsk FROM (TABELIST) ja seejärel teise päringusse kaasatava tabeli nimi. Vajutage sisestusklahvi (ENTER).
-
Soovi korral lisage WHERE-klausel selle juhendi toimingus 6 kirjeldatud viisil.
-
Päringu lõpu tähistamiseks tippige semikoolon (;).
-
Klõpsake menüü Kujundus jaotises Tulemid nuppu Käivita.
Tulemid kuvatakse andmelehevaates.