Denne artikkelen forklarer hvordan du bruker spørringer med toppverdier og totalverdispørringer til å finne de nyeste eller tidligste datoene i et sett med poster. Dette kan hjelpe deg med å svare på en rekke bedriftsspørsmål, for eksempel når en kunde sist la inn en ordre, eller hvilke fem kvartaler som har vært best egnet for salg, etter by.
I denne artikkelen
Oversikt
Du kan rangere data og se gjennom de høyest rangerte elementene ved hjelp av en spørring med toppverdier. En spørring med toppverdi er en utvalgsspørring som returnerer et angitt antall eller prosent av verdiene fra toppen av resultatene, for eksempel de fem mest populære sidene på et nettsted. Du kan bruke en spørring med toppverdier mot alle typer verdier – de trenger ikke å være tall.
Hvis du vil gruppere eller summere dataene før du rangerer dem, trenger du ikke å bruke en spørring med toppverdier. Anta for eksempel at du må finne salgstallene for en gitt dato for hver by der firmaet opererer. I så fall blir byene kategorier (du må finne dataene per by), så du bruker en totalspørring.
Når du bruker en spørring med toppverdier til å finne poster som inneholder de siste eller tidligste datoene i en tabell eller gruppe med poster, kan du svare på en rekke forretningsspørsmål, for eksempel følgende:
-
Hvem har gjort mest salg i det siste?
-
Når la en kunde inn en bestilling sist?
-
Når er de neste tre bursdagene på laget?
Hvis du vil lage en spørring med en toppverdi, starter du med å opprette en utvalgsspørring. Deretter sorterer du dataene i henhold til spørsmålet ditt – enten du leter etter toppen eller bunnen. Hvis du trenger å gruppere eller summere dataene, kan du gjøre utvalgsspørringen om til en totalspørring. Du kan deretter bruke en mengdefunksjon, for eksempel Maks eller Min , til å returnere den høyeste eller laveste verdien, eller Første eller Siste for å returnere den tidligste eller siste datoen.
Denne artikkelen antar at datoverdiene du bruker, har datatypen Dato/klokkeslett. Hvis datoverdiene er i et tekstfelt, .
Vurder å bruke et filter i stedet for en spørring med toppverdier
Et filter er vanligvis bedre hvis du har en bestemt dato i tankene. Hvis du vil finne ut om du skal opprette en spørring med toppverdier eller bruke et filter, kan du vurdere følgende:
-
Hvis du vil returnere alle postene der datoen samsvarer, er før eller senere enn en bestemt dato, kan du bruke et filter. Hvis du for eksempel vil se datoene for salg mellom april og juli, bruker du et filter.
-
Hvis du vil returnere en bestemt mengde poster som har de nyeste eller nyeste datoene i et felt, og du ikke vet de nøyaktige datoverdiene, eller de ikke betyr noe, oppretter du en spørring med de høyeste verdiene. Hvis du for eksempel vil se de fem beste salgskvarterene, kan du bruke en spørring med de øverste verdiene.
Hvis du vil ha mer informasjon om hvordan du oppretter og bruker filtre, kan du se artikkelen Bruke et filter til å vise utvalgte poster i en Access-database.
Klargjøre eksempeldata for å følge eksemplene
Trinnene i denne artikkelen bruker dataene i følgende eksempeltabeller.
Ansatte-tabellen
|
Etternavn |
Fornavn |
Adresse |
Poststed |
CountryOrR egion |
Fødselsdato |
Ansettelsesdato |
|
Barnhill |
Josh |
1 Main St. |
New York |
USA |
05.05.1968 |
10.juni 1994 kl. |
|
Heloo |
Waleed |
52 1st St. |
Boston |
USA |
22-mai-1957 |
22.1996 kl. |
|
Pica |
Guido |
3122 75th Ave. S.W. |
Seattle |
USA |
11.11.1960 (andre siden 11. november 1960) |
11.01.2000 |
|
Bagel |
Jean Philippe |
1 Contoso Blvd. |
London |
UK |
22.02.1964 kl. |
22.juni 1998 kl. |
|
Pris |
Julian |
Calle Smith 2 |
Mexico City |
Mexico |
05.05.1972 (andre siden 1972) |
05.05.2002 |
|
Hughes |
Christine |
3122 75nde St. S. |
Seattle |
USA |
23.januar 1970 (andre siden 23. januar 1970) |
23.02.1999 |
|
Riley |
Steve |
67 Big St. |
Tampa |
USA |
14.04.1964 kl. |
14.14.2004 |
|
Birkby |
Dana |
2 Nysgjerrig pkwy |
Portland |
USA |
29.09.1959 kl. |
29. mars 1997 kl. |
EventType-tabellen
|
TypeID |
Hendelsestype |
|
1 |
Produktlansering |
|
2 |
Firmafunksjon |
|
3 |
Privat funksjon |
|
4 |
Fondsinnsamling |
|
5 |
Varemesse |
|
6 |
Foredrag |
|
7 |
Konsert |
|
8 |
Utstille |
|
9 |
Gatemesse |
Kunder-tabellen
|
Kunde-ID |
Firma |
Kontakt |
|
1 |
Contoso, Ltd. Grafikk |
Jonathan Haas |
|
2 |
Tailspin Toys |
Ellen Adams |
|
3 |
Fabrikam |
Carol Philips |
|
4 |
Wingtip Toys |
Lucio Iallo |
|
5 |
A. Datum |
Mandar Samant |
|
6 |
Adventure Works |
Brian Burke |
|
7 |
Utformingsinstitutt |
Jaka Stele |
|
8 |
Kunstskole |
Milena Duomanova |
Hendelser-tabellen
|
Hendelses-ID |
Hendelsestype |
Kunde |
Hendelsesdato |
Pris |
|
1 |
Produktlansering |
Contoso, Ltd. |
4/14/2011 |
$10 000 |
|
2 |
Firmafunksjon |
Tailspin Toys |
4/21/2011 |
kr 8 000 |
|
3 |
Varemesse |
Tailspin Toys |
01.05.2011 |
KR 25 000 |
|
4 |
Utstille |
Graphic Design Institute |
5/13/2011 |
kr4 500 |
|
5 |
Varemesse |
Contoso, Ltd. |
5/14/2011 |
KR 55 000 |
|
6 |
Konsert |
Kunstskole |
5/23/2011 |
kr 12 000 |
|
7 |
Produktlansering |
A. Datum |
6/1/2011 |
kr 15 000 |
|
8 |
Produktlansering |
Wingtip Toys |
6/18/2011 |
kr 21 000 |
|
9 |
Fondsinnsamling |
Adventure Works |
6/22/2011 |
KR 13 000 |
|
10 |
Foredrag |
Graphic Design Institute |
6/25/2011 |
KR 2450 |
|
11 |
Foredrag |
Contoso, Ltd. |
04.07.2011 |
KR 38 000 |
|
12 |
Gatemesse |
Graphic Design Institute |
04.07.2011 |
kr 5 500 |
Obs!: Trinnene i denne delen forutsetter at tabellene Kunder og Hendelsestype befinner seg på «én»-siden av én-til-mange-relasjoner med Hendelser-tabellen. I dette tilfellet deler Hendelser-tabellen feltene CustomerID og TypeID. Totalspørringene som er beskrevet i de neste inndelingene, fungerer ikke uten disse relasjonene.
Lime inn eksempeldataene i Excel-regneark
-
Åpne Excel. En tom arbeidsbok åpnes.
-
Trykk SKIFT+F11 for å sette inn et regneark (du trenger fire).
-
Kopier dataene fra hver eksempeltabell til et tomt regneark. Inkluder kolonneoverskriftene (den første raden).
Opprette databasetabeller fra regnearkene
-
Merk dataene fra det første regnearket, inkludert kolonneoverskriftene.
-
Høyreklikk navigasjonsruten, og klikk deretter Lim inn.
-
Klikk Ja for å bekrefte at den første raden inneholder kolonneoverskrifter.
-
Gjenta trinn 1–3 for hvert av de gjenværende regnearkene.
Finne den nyeste eller nyeste datoen
Trinnene i denne delen bruker eksempeldataene til å illustrere prosessen med å opprette en spørring med toppverdier.
Opprette en grunnleggende spørring for toppverdier
-
I fanen Opprett i gruppen Spørringer, klikker du på Spørreutforming.
-
Dobbeltklikk ansatte-tabellen, og klikk deretter Lukk.
Hvis du bruker eksempeldataene, legger du til Ansatte-tabellen i spørringen.
-
Legg til feltene du vil bruke i spørringen, i utformingsrutenettet. Du kan dobbeltklikke hvert felt eller dra og slippe hvert felt på en tom celle i Felt-raden .
Hvis du bruker eksempeltabellen, legger du til feltene Fornavn, Etternavn og Fødselsdato.
-
Klikk på Sorter-raden i feltet som inneholder verdiene øverst eller nederst (feltet Fødselsdato hvis du bruker eksempeltabellen), og velg enten Stigende eller Synkende.
Synkende sorteringsrekkefølge returnerer den nyeste datoen, og sorteringsrekkefølgen stigende returnerer den tidligste datoen.
Viktig!: Du må angi en verdi i sorteringsraden bare for felt som inneholder datoene. Hvis du angir en sorteringsrekkefølge for et annet felt, returnerer ikke spørringen resultatene du ønsker.
-
Klikk pil ned ved siden av Alle (øverste verdiliste) i Verktøy-gruppen på Utforming-fanen, og skriv inn antall poster du vil se, eller velg et alternativ fra listen.
-
Klikk Kjør
for å kjøre spørringen og vise resultatene i dataarkvisning. -
Lagre spørringen som NextBirthDays.
Du kan se at denne typen spørring med toppverdier kan besvare grunnleggende spørsmål, for eksempel hvem som er den eldste eller yngste personen i firmaet. De neste trinnene forklarer hvordan du bruker uttrykk og andre kriterier for å gi spørringen kraft og fleksibilitet. Vilkårene som vises i neste trinn, returnerer de neste tre fødselsdagene for ansatte.
Legge til vilkår i spørringen
Disse trinnene bruker spørringen som ble opprettet i den foregående prosedyren. Du kan følge med på en annen spørring med toppverdier så lenge den inneholder faktiske dato/klokkeslett-data, ikke tekstverdier.
Tips!: Hvis du vil forstå hvordan denne spørringen fungerer bedre, bytter du mellom utformingsvisning og dataarkvisning i hvert trinn. Hvis du vil se den faktiske spørringskoden, bytter du til SQL-visning. Hvis du vil bytte mellom visninger, høyreklikker du fanen øverst i spørringen og klikker deretter visningen du vil bruke.
-
Høyreklikk NextBirthDays-spørringen i navigasjonsruten, og klikk deretter Utformingsvisning.
-
Skriv inn følgende:MonthBorn: DatePart("m",[BirthDate]) i kolonnen til høyre for BirthDate.Dette uttrykket trekker ut måneden fra BirthDate ved hjelp av DatePart-funksjonen .
-
I den neste kolonnen i utformingsrutenettet for spørringen skriver du inn følgende:DayOfMonthBorn: DatePart("d",[BirthDate])Dette uttrykket trekker ut dagen i måneden fra BirthDate ved hjelp av DatePart-funksjonen .
-
Fjern merket i avmerkingsboksene i Vis-raden for hvert av de to uttrykkene du nettopp skrev inn.
-
Klikk på Sorter-raden for hvert uttrykk, og velg deretter Stigende.
-
Skriv inn følgende uttrykk:Month([Birth Date]) > Month(Date()) OR Month([Birth Date])= Month(Date()) AND Day([Birth Date])>Day(Date()))Dette uttrykket gjør følgende:
-
Month( [Birth Date]) > Month(Date()) angir at fødselsdatoen for hver ansatt faller i en fremtidig måned.
-
The Month( [Birth Date])= Month(Date()) And Day([Birth Date])>Day(Date()) angir at hvis fødselsdatoen forekommer i gjeldende måned, faller fødselsdagen på eller etter gjeldende dag.
Kort sagt utelater dette uttrykket alle poster der fødselsdagen forekommer mellom 1. januar og gjeldende dato.
Tips!: Hvis du vil ha flere eksempler på uttrykk for spørringsvilkår, kan du se artikkelen Eksempler på spørringsvilkår.
-
-
Skriv inn 3 i Retur-boksen i Oppsett-gruppen på Utforming-fanen.
-
Klikk på Kjør
i Resultater-gruppen på Utforming-fanen.
Obs!: I din egen spørring som bruker dine egne data, kan det hende du noen ganger ser flere poster enn du har angitt. Hvis dataene inneholder flere poster som deler en verdi som er blant de høyeste verdiene, vil spørringen returnere alle slike poster selv om det betyr å returnere flere poster enn du ønsker.
Finne de nyeste eller nyeste datoene for grupper med poster
Du bruker en totalspørring til å finne de tidligste eller siste datoene for poster som faller inn i grupper, for eksempel hendelser gruppert etter poststed. En totalverdispørring er en utvalgsspørring som bruker mengdefunksjoner (for eksempel Grupper etter, Mi, Maks, Antall, Første og Siste) til å beregne verdier for hvert utdatafelt.
Inkluder feltet du vil bruke for kategorier – for å gruppere etter – og feltet med verdiene du vil summere. Hvis du inkluderer andre utdatafelt – for eksempel navnene på kunder når du grupperer etter hendelsestype – vil spørringen også bruke disse feltene til å lage grupper og endre resultatene slik at de ikke svarer på det opprinnelige spørsmålet. Hvis du vil merke radene ved hjelp av andre felt, oppretter du en ekstra spørring som bruker totalspørringen som kilde, og legger til tilleggsfeltene i denne spørringen.
Tips!: Å bygge spørringer i trinn er en svært effektiv strategi for å svare på mer avanserte spørsmål. Hvis du har problemer med å få en komplisert spørring til å fungere, bør du vurdere om du kan dele den opp i en rekke enklere spørringer.
Opprette en totalspørring
Denne prosedyren bruker hendelseseksempeltabellen og EventType-eksempeltabellen til å svare på dette spørsmålet:
Når var det siste arrangementet av hver hendelsestype, unntatt konserter?
-
I fanen Opprett i gruppen Spørringer, klikker du på Spørreutforming.
-
Dobbeltklikk hendelses- og hendelsestypetabellene. Hver tabell vises i den øverste delen av spørringsutformingen.
-
Dobbeltklikk EventType-feltet i EventType-tabellen og EventDate-feltet fra Hendelser-tabellen for å legge til feltene i utformingsrutenettet for spørringen.
-
Skriv inn <>Concert i Vilkår-raden i EventType-feltet i utformingsrutenettet for spørringen.
Tips!: Hvis du vil ha flere eksempler på vilkårsuttrykk, kan du se artikkelen Eksempler på spørringsvilkår.
-
Klikk Totaler i Vis/skjul-gruppen på Utforming-fanen.
-
Klikk totalraden i EventDate-feltet i utformingsrutenettet for spørringen, og klikk deretter Maks.
-
Klikk Vis i Resultater-gruppen i kategorien Utforming, og klikk deretter SQL-visning.
-
I SQL-vinduet, på slutten av SELECT-setningsdelen, like etter AS-nøkkelordet, erstatter du MaxOfEventDate med MostRecent.
-
Lagre spørringen som MostRecentEventByType.
Opprette en ny spørring for å legge til flere data
Denne prosedyren bruker MostRecentEventByType-spørringen fra den foregående prosedyren til å svare på dette spørsmålet:
Hvem var kunden på den nyeste hendelsen for hver hendelsestype?
-
I fanen Opprett i gruppen Spørringer, klikker du på Spørreutforming.
-
Dobbeltklikk MostRecentEventByType-spørringen på Spørringer-fanen .
-
Dobbeltklikk Hendelser-tabellen og Kunder-tabellen på Tabeller-fanen.
-
Dobbeltklikk følgende felt i spørringsutformingen:
-
Dobbeltklikk EventType i Hendelser-tabellen.
-
Dobbeltklikk MostRecent i MostRecentEventByType-spørringen.
-
Dobbeltklikk Firma i Kunder-tabellen.
-
-
Velg Stigende i Sorter-raden i EventType-kolonnen i utformingsrutenettet for spørringen.
-
Klikk på Kjør i Resultater-gruppen på Utforming-fanen.