Gjelder for
Access 2010

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.

Til toppen av siden

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

  1. Åpne Excel. En tom arbeidsbok åpnes.

  2. Trykk SKIFT+F11 for å sette inn et regneark (du trenger fire).

  3. Kopier dataene fra hver eksempeltabell til et tomt regneark. Inkluder kolonneoverskriftene (den første raden).

Opprette databasetabeller fra regnearkene

  1. Merk dataene fra det første regnearket, inkludert kolonneoverskriftene.

  2. Høyreklikk navigasjonsruten, og klikk deretter Lim inn.

  3. Klikk Ja for å bekrefte at den første raden inneholder kolonneoverskrifter.

  4. 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

  1. I fanen Opprett i gruppen Spørringer, klikker du på Spørreutforming.

  2. Dobbeltklikk ansatte-tabellen, og klikk deretter Lukk.

    Hvis du bruker eksempeldataene, legger du til Ansatte-tabellen i spørringen.

  3. 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.

  4. 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.

  5. Klikk pil ned ved siden av Alle (øverste verdiliste) i Verktøy-gruppenUtforming-fanen, og skriv inn antall poster du vil se, eller velg et alternativ fra listen.

  6. Klikk Kjør Knappfor å kjøre spørringen og vise resultatene i dataarkvisning.

  7. 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.

  1. Høyreklikk NextBirthDays-spørringen i navigasjonsruten, og klikk deretter Utformingsvisning.

  2. 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 .

  3. 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 .

  4. Fjern merket i avmerkingsboksene i Vis-raden for hvert av de to uttrykkene du nettopp skrev inn.

  5. Klikk på Sorter-raden for hvert uttrykk, og velg deretter Stigende.

  6. 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.

  7. Skriv inn 3 i Retur-boksen i Oppsett-gruppenUtforming-fanen.

  8. Klikk på Kjør Knapp 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.

Til toppen av siden

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?

  1. I fanen Opprett i gruppen Spørringer, klikker du på Spørreutforming.

  2. Dobbeltklikk hendelses- og hendelsestypetabellene. Hver tabell vises i den øverste delen av spørringsutformingen.

  3. Dobbeltklikk EventType-feltet i EventType-tabellen og EventDate-feltet fra Hendelser-tabellen for å legge til feltene i utformingsrutenettet for spørringen.

  4. 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.

  5. Klikk Totaler i Vis/skjul-gruppen på Utforming-fanen.

  6. Klikk totalraden i EventDate-feltet i utformingsrutenettet for spørringen, og klikk deretter Maks.

  7. Klikk Vis i Resultater-gruppen i kategorien Utforming, og klikk deretter SQL-visning.

  8. I SQL-vinduet, på slutten av SELECT-setningsdelen, like etter AS-nøkkelordet, erstatter du MaxOfEventDate med MostRecent.

  9. 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?

  1. I fanen Opprett i gruppen Spørringer, klikker du på Spørreutforming.

  2. Dobbeltklikk MostRecentEventByType-spørringen på Spørringer-fanen .

  3. Dobbeltklikk Hendelser-tabellen og Kunder-tabellen på Tabeller-fanen.

  4. Dobbeltklikk følgende felt i spørringsutformingen:

    1. Dobbeltklikk EventType i Hendelser-tabellen.

    2. Dobbeltklikk MostRecent i MostRecentEventByType-spørringen.

    3. Dobbeltklikk Firma i Kunder-tabellen.

  5. Velg Stigende i Sorter-raden i EventType-kolonnen i utformingsrutenettet for spørringen.

  6. Klikk på Kjør i Resultater-gruppen på Utforming-fanen.

Til toppen av siden

Trenger du mer hjelp?

Vil du ha flere alternativer?

Utforsk abonnementsfordeler, bla gjennom opplæringskurs, finn ut hvordan du sikrer enheten og mer.