Denne artikkelen forklarer hvordan du bruker spørringer for toppverdier og totalsummer til å finne de nyeste eller tidligste datoene i et sett med poster. Dette kan hjelpe deg med å svare på en rekke forretningsspørsmål, for eksempel når en kunde sist la inn en ordre, eller hvilke fem kvartaler har vært best 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 toppverdispørring 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 trenger å finne salgstallene for en gitt dato for hver by der firmaet drifter. I slike tilfeller blir byene kategorier (du må finne dataene per by), så du bruker en totalspørring.
Når du bruker en spørring med høyeste verdier til å finne poster som inneholder de nyeste eller tidligste datoene i en tabell eller en gruppe poster, kan du svare på en rekke forretningsspørsmål, for eksempel følgende:
-
Hvem har gjort mest salg i det siste?
-
Når hadde en kunde sist bestilt?
-
Når er de neste tre fødselsdagene på teamet?
Hvis du vil lage en spørring med høyeste verdi, 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, gjør du utvalgsspørringen om til en totalspørring. Deretter kan du bruke en mengdefunksjon, for eksempel Maks eller Min, til å returnere den høyeste eller laveste verdien, eller Første eller Siste til å returnere den tidligste eller seneste datoen.
Denne artikkelen forutsetter at datoverdiene du bruker, har datatypen Dato/klokkeslett. Hvis datoverdiene er i et tekstfelt, .
Vurder å bruke et filter i stedet for en toppverdispørring
Et filter er vanligvis bedre hvis du har en bestemt dato i tankene. Vurder følgende for å finne ut om du bør opprette en toppverdispørring eller bruke et filter:
-
Hvis du vil returnere alle postene der datoen samsvarer med, er før eller etter en bestemt dato, bruker du et filter. Hvis du for eksempel vil se datoene for salg mellom april og juli, bruker du et filter.
-
Hvis du vil returnere et bestemt antall poster som har de nyeste eller seneste datoene i et felt, og du ikke vet de nøyaktige datoverdiene, eller de ikke har noe å si, oppretter du en spørring for øverste verdier. Hvis du for eksempel vil se de fem beste salgskvartalene, bruker du en spørring for øverste verdier.
Hvis du vil ha mer informasjon om hvordan du oppretter og bruker filtre, kan du se artikkelen Bruke et filter til å vise valgte oppføringer i en Access-database.
Klargjøre eksempeldata som skal følges sammen med 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.02.201968 |
10.jun.1994 |
Heloo |
Waleed |
52 1st St. |
Boston |
USA |
22.03.20195 |
22.11.1996 |
Pica |
Guido |
3122 75th Ave. S.W. |
Seattle |
USA |
11.11.1960 |
11.03.2000 |
Bagel |
Jean Philippe |
1 Contoso Blvd. |
London |
UK |
22.03.201964 |
22.jun.1998 |
Pris |
Julian |
Calle Smith 2 |
Mexico City |
Mexico |
05-jun-1972 |
05.01.2002 |
Hughes |
Christine |
3122 75th St. S. |
Seattle |
USA |
23.01.1970 |
23.04.20199 |
Riley |
Steve |
67 Big St. |
Tampa |
USA |
14.04.201964 |
14.12.2004 |
Birkby |
Dana |
2 Nosey Pkwy |
Portland |
USA |
29.02.1959 |
29.03.20197 |
Hendelsestype-tabellen
TypeID |
Hendelsestype |
1 |
Produktlansering |
2 |
Bedriftsfunksjon |
3 |
Private-funksjon |
4 |
Fondsforvalter |
5 |
Varemekke |
6 |
Forelesning |
7 |
Konsert |
8 |
Utstilling |
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 |
Design Institute |
Jaka Stele |
8 |
School of Fine Art |
Milena Duomanova |
Hendelser-tabellen
Hendelses-ID |
Hendelsestype |
Kunde |
Hendelsesdato |
Pris |
1 |
Produktlansering |
Contoso, Ltd. |
4/14/2011 |
$10 000 |
2 |
Bedriftsfunksjon |
Tailspin Toys |
4/21/2011 |
kr 8 000 |
3 |
Varemekke |
Tailspin Toys |
01.05.2011 |
kr 25 000 |
4 |
Utstilling |
Graphic Design Institute |
5/13/2011 |
kr4 500 |
5 |
Varemekke |
Contoso, Ltd. |
5/14/2011 |
kr 55 000 |
6 |
Konsert |
School of Fine Art |
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 |
Fondsforvalter |
Adventure Works |
6/22/2011 |
kr 1 300 |
10 |
Forelesning |
Graphic Design Institute |
6/25/2011 |
kr 2 450 |
11 |
Forelesning |
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 kunder- og hendelsestypetabellene ligger på «én»-siden av én-til-mange-relasjoner med Hendelser-tabellen. I dette tilfellet deler Hendelser-tabellen feltene KundeID og TypeID. Totalspørringene som er beskrevet i de neste avsnittene, vil ikke fungere 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. Ta med kolonneoverskriftene (første rad).
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 høyeste verdier.
Opprette en grunnleggende toppverdispørring
-
Klikk på Spørringsutforming i Spørringer-gruppen på Opprett-fanen.
-
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 på hvert felt eller dra og slippe hvert felt i en tom celle i Felt-raden.
Hvis du bruker eksempeltabellen, legger du til feltene Fornavn, Etternavn og Fødselsdato.
-
I feltet som inneholder de høyeste eller laveste verdiene (Fødselsdato-feltet, hvis du bruker eksempeltabellen), klikker du Sorter-raden og velger enten Stigende eller Synkende.
Synkende sorteringsrekkefølge returnerer den nyeste datoen, og stigende sorteringsrekkefølge returnerer den tidligste datoen.
Viktig!: Du må angi en verdi i Sorter-raden 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 (listen over øverste verdier) i Verktøy-gruppen på Utforming-fanen, og angi hvor mange 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 vilkår for å legge til kraft og fleksibilitet i spørringen. Kriteriene som vises i neste trinn, returnerer de neste tre fødselsdagene til de ansatte.
Legge til vilkår i spørringen
Denne fremgangsmåten bruker spørringen som ble opprettet i forrige prosedyre. Du kan følge med på en annen toppverdispørring så lenge den inneholder faktiske dato/klokkeslett-data, ikke tekstverdier.
Tips!: Hvis du vil vite bedre hvordan denne spørringen fungerer, 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.
-
I utformingsrutenettet for spørringen, i kolonnen til høyre for BirthDate, skriver du inn følgende:
Month Birth: DatePart("m";[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:
DayOfMonthDrag: 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 i Vilkår-raden i Kolonnen Fødselsdato:
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.
-
Month( [Birth Date])= Month(Date()) And Day([Birth Date])>Day(Date()) angir at hvis fødselsdatoen inntreffer i gjeldende måned, faller fødselsdatoen på eller etter den gjeldende dagen.
Kort sagt utelukker dette uttrykket alle poster der fødselsdagen inntreffer mellom 1. januar og gjeldende dato.
Tips!: Hvis du vil ha flere eksempler på uttrykk med spørringsvilkår, kan du se artikkelen Eksempler på spørringsvilkår.
-
-
Skriv inn 3 i Retur-boksen i Gruppen Spørringsoppsett 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 du noen ganger se flere poster enn du har angitt. Hvis dataene inneholder flere poster som deler en verdi som er blant de høyeste verdiene, returnerer spørringen alle slike poster selv om det betyr å returnere flere poster enn du ønsker.
Finne de nyeste eller mest nylige datoene for grupper med poster
Du bruker en totalsumspørring til å finne de tidligste eller seneste datoene for poster som faller inn i grupper, for eksempel hendelser gruppert etter by. 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.
Ta med feltet du vil bruke for kategorier – for å gruppere etter – og feltet med verdiene du vil oppsummere. Hvis du inkluderer andre utdatafelt, for eksempel navnene på kunder når du grupperer etter hendelsestype, bruker spørringen også disse feltene til å opprette grupper og endre resultatene slik at de ikke svarer på det opprinnelige spørsmålet. Hvis du vil merke radene ved hjelp av andre felter, oppretter du en ekstra spørring som bruker totaler-spørringen som kilde, og legger til flere felt 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 totalsumspørring
Denne fremgangsmåten bruker eksempeltabellen Hendelser og Eksempeltabellen for EventType for å svare på dette spørsmålet:
Når var den nyeste hendelsen for hver hendelsestype, unntatt konserter?
-
Klikk på Spørringsutforming i Spørringer-gruppen på Opprett-fanen.
-
Dobbeltklikk på Hendelser- og Hendelsestype-tabellene.
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.
-
Angi en konsert i vilkårsraden i Feltet Hendelsestype i utformingsrutenettet for <>spørring.
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-setningen, rett 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 forrige prosedyren til å svare på dette spørsmålet:
Hvem var kunden på den nyeste hendelsen for hver hendelsestype?
-
Klikk på Spørringsutforming i Spørringer-gruppen på Opprett-fanen.
-
Dobbeltklikk spørringen MostRecentEventByType 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 på mostRecentEventByType-spørringen.
-
Dobbeltklikk Firma i Kunder-tabellen.
-
-
Velg Stigende i Sorter-raden i Hendelsestype-kolonnen i utformingsrutenettet for spørringen.
-
Klikk på Kjør i Resultater-gruppen på Utforming-fanen.