Gælder for
Access 2010

I denne artikel forklares det, hvordan du kan bruge forespørgsler med topværdier og totaler til at finde de seneste eller tidligste datoer i et sæt poster. Dette kan hjælpe dig med at besvare en række forretningsspørgsmål, f.eks. hvornår en kunde sidst har afgivet en ordre, eller hvilke fem kvartaler der har været bedst til salg, efter by.

Denne artikel indeholder

Oversigt

Du kan rangere data og gennemse de højest rangerede elementer ved hjælp af en forespørgsel med de højeste værdier. En topværdiforespørgsel er en udvælgelsesforespørgsel, der returnerer et angivet antal eller procent af værdier fra toppen af resultaterne, f.eks. de fem mest populære sider på et websted. Du kan bruge en forespørgsel om de vigtigste værdier i forhold til enhver type værdier – de behøver ikke at være tal.

Hvis du vil gruppere eller opsummere dine data, før du rangerer dem, behøver du ikke at bruge en forespørgsel med de højeste værdier. Antag f.eks., at du skal finde salgsnumrene for en given dato for hver by, som virksomheden opererer i. I så fald bliver byerne kategorier (du skal finde dataene pr. by), så du bruger en totalforespørgsel.

Når du bruger en forespørgsel med de vigtigste værdier til at finde poster, der indeholder de seneste eller tidligste datoer i en tabel eller gruppe af poster, kan du besvare en række forretningsspørgsmål, f.eks. følgende:

  • Hvem har været at gøre mest salg sidst?

  • Hvornår har en kunde sidst afgivet en ordre?

  • Hvornår er de næste tre fødselsdage på holdet?

Hvis du vil lave en forespørgsel med den største værdi, skal du starte med at oprette en udvælgelsesforespørgsel. Sortér derefter dataene efter dit spørgsmål – uanset om du leder efter toppen eller bunden. Hvis du vil gruppere eller opsummere dataene, skal du omdanne udvælgelsesforespørgslen til en totalforespørgsel. Du kan derefter bruge en aggregeringsfunktion, f.eks . Maks eller Min , til at returnere den højeste eller laveste værdi, eller Første eller Sidste for at returnere den tidligste eller seneste dato.

I denne artikel antages det, at de datoværdier, du bruger, har datatypen Dato og klokkeslæt. Hvis dine datoværdier er i et tekstfelt, .

Overvej at bruge et filter i stedet for en forespørgsel om de vigtigste værdier

Et filter er som regel bedre, hvis du har en bestemt dato i tankerne. Overvej følgende for at afgøre, om du skal oprette en forespørgsel med de vigtigste værdier eller anvende et filter:

  • Hvis du vil returnere alle de poster, hvor datoen stemmer overens, er før eller senere end en bestemt dato, skal du bruge et filter. Hvis du f.eks. vil se salgsdatoerne mellem april og juli, skal du anvende et filter.

  • Hvis du vil returnere et bestemt antal poster, der har de seneste eller seneste datoer i et felt, og du ikke kender de nøjagtige datoværdier, eller de ikke betyder noget, kan du oprette en forespørgsel med de vigtigste værdier. Hvis du f.eks. vil se de fem bedste salgskvartaler, skal du bruge en forespørgsel med de højeste værdier.

Du kan finde flere oplysninger om oprettelse og brug af filtre i artiklen Anvend et filter for at få vist udvalgte poster i en Access-database.

Toppen af siden

Forbered eksempeldata til at følge sammen med eksemplerne

Trinnene i denne artikel bruger dataene i følgende eksempeltabeller.

Tabellen Medarbejdere   

Efternavn

Fornavn

Adresse

By

CountryOrR egion

Fødselsdato

Ansættelsesdato

Pedersen

Josh

1 Main St.

New York

USA

5. februar 1968

10-jun 1994

Heloo

Waleed

52 1st St.

Boston

USA

22. maj 1957

22. november 1996

Pica

Guido

3122 75th Ave. S.W.

Seattle

USA

11. november 1960

11. marts 2000

Bagel

Jean Philippe

1 Contoso Blvd.

London

Storbritannien

22. marts 1964

22. juni 1998

Pris

Julian

Calle Smith 2

Mexico City

Mexico

05-Jun 1972

5. januar 2002

Hughes

Christine

3122 75th St. S.

Seattle

USA

23. januar 1970

23. april 1999

Riley

Steve

67 Big St.

Tampa

USA

14. april 1964

14. oktober 2004

Birkby

Dana

2 Næseblod Pkwy

Portland

USA

29. oktober 1959

29. marts 1997

Tabellen EventType   

TypeID

Hændelsestype

1

Produktlancering

2

Funktionen Virksomhed

3

Funktionen Private

4

Fund Raiser

5

Messeshow

6

Foredrag

7

Koncert

8

Udstille

9

Gademesse

Tabellen Kunder   

Kunde-id

Firma

Kontakt

1

Contoso, Ltd. Grafik

Jonathan Haas

2

Tailspin Toys

Ellen Adams

3

Fabrikam

Carol Philips

4

Wingtip Toys

Lucio Iallo

5

A. Data

Mandar Samant

6

Adventure Works

Brian Burke

7

Design Institute

Jaka Stele

8

Kunstskole

Milena Duomanova

Tabellen Hændelser   

Hændelses-id

Hændelsestype

Kunde

Begivenhedsdato

Pris

1

Produktlancering

Contoso, Ltd.

4/14/2011

DKK 10.000

2

Funktionen Virksomhed

Tailspin Toys

4/21/2011

DKK 8.000

3

Messeshow

Tailspin Toys

01-05-2011

25.000 dollars

4

Udstille

Graphic Design Institute

5/13/2011

kr. 45.000

5

Messeshow

Contoso, Ltd.

5/14/2011

55.000 dollars

6

Koncert

Kunstskole

5/23/2011

DKK 12.000

7

Produktlancering

A. Data

6/1/2011

DKK 15.000

8

Produktlancering

Wingtip Toys

6/18/2011

DKK 21.000

9

Fund Raiser

Adventure Works

6/22/2011

$1.300

10

Foredrag

Graphic Design Institute

6/25/2011

$2.450

11

Foredrag

Contoso, Ltd.

04-07-2011

3.800 kr.

12

Gademesse

Graphic Design Institute

04-07-2011

DKK 5.500

Bemærk!: Trinnene i dette afsnit forudsætter, at tabellerne Kunder og Hændelsestype er placeret på en-siden af en-til-mange-relationer med tabellen Hændelser. I dette tilfælde deler tabellen Hændelser felterne Kunde-id og TypeID. De totalforespørgsler, der er beskrevet i de næste afsnit, fungerer ikke uden disse relationer.

Indsætte eksempeldataene i Excel-regneark

  1. Start Excel. Der åbnes en tom projektmappe.

  2. Tryk på Skift+F11 for at indsætte et regneark (du skal bruge fire).

  3. Kopiér dataene fra hver eksempeltabel til et tomt regneark. Medtag kolonneoverskrifterne (den første række).

Oprette databasetabeller ud fra regneark

  1. Markér dataene fra det første regneark, herunder kolonneoverskrifterne.

  2. Højreklik på navigationsruden, og klik derefter på Sæt ind.

  3. Klik på Ja for at bekræfte, at den første række indeholder kolonneoverskrifter.

  4. Gentag trin 1-3 for hvert af de resterende regneark.

Find den seneste eller seneste dato

Trinnene i dette afsnit bruger eksempeldataene til at illustrere processen med at oprette en forespørgsel med de vigtigste værdier.

Oprette en grundlæggende forespørgsel om de vigtigste værdier

  1. Klik på Forespørgselsdesign i gruppen Forespørgsler under fanen Opret.

  2. Dobbeltklik på tabellen Medarbejdere, og klik derefter på Luk.

    Hvis du bruger eksempeldataene, skal du føje tabellen Medarbejdere til forespørgslen.

  3. Føj de felter, du vil bruge i forespørgslen, til designgitteret. Du kan dobbeltklikke på hvert felt eller trække og slippe hvert felt i en tom celle i rækken Felt .

    Hvis du bruger eksempeltabellen, skal du tilføje felterne Fornavn, Efternavn og Fødselsdato.

  4. I det felt, der indeholder dine øverste eller nederste værdier (feltet Fødselsdato, hvis du bruger eksempeltabellen), skal du klikke på rækken Sortér og vælge enten Stigende eller Faldende.

    Faldende sorteringsrækkefølge returnerer den seneste dato, og Stigende sorteringsrækkefølge returnerer den tidligste dato.

    Vigtigt!: Du skal kun angive en værdi i rækken Sortér for felter, der indeholder dine datoer. Hvis du angiver en sorteringsrækkefølge for et andet felt, returnerer forespørgslen ikke de ønskede resultater.

  5. Klik på pil ned ud for Alle (listen Øverste værdier) i gruppen Værktøjer under fanen Design, og angiv enten det antal poster, du vil have vist, eller vælg en indstilling på listen.

  6. Klik på Kør Knapfladefor at køre forespørgslen og få vist resultaterne i dataarkvisning.

  7. Gem forespørgslen som NextBirthDays.

Du kan se, at denne type forespørgsel om de vigtigste værdier kan besvare grundlæggende spørgsmål, f.eks. hvem der er den ældste eller yngste person i virksomheden. De næste trin beskriver, hvordan du bruger udtryk og andre kriterier til at føje styrke og fleksibilitet til forespørgslen. De kriterier, der vises i næste trin, returnerer de næste tre medarbejderfødder.

Føj kriterier til forespørgslen

Disse trin bruger den forespørgsel, der er oprettet i den foregående procedure. Du kan følge en forespørgsel med forskellige topværdier, så længe den indeholder faktiske dato-/klokkeslætsdata, ikke tekstværdier.

Tip!:  Hvis du vil have en bedre forståelse af, hvordan denne forespørgsel fungerer, kan du skifte mellem designvisning og dataarkvisning på hvert trin. Hvis du vil se den faktiske forespørgselskode, skal du skifte til SQL-visning. Hvis du vil skifte mellem visninger, skal du højreklikke på fanen øverst i forespørgslen og derefter klikke på den ønskede visning.

  1. Højreklik på forespørgslen NextBirthDays i navigationsruden, og klik derefter på Designvisning.

  2. I forespørgselsdesigngitteret i kolonnen til højre for BirthDate skal du angive følgende:MonthBorn: DatePart("m",[BirthDate]).Dette udtryk udtrækker måneden fra BirthDate ved hjælp af funktionen DatePart .

  3. I den næste kolonne i forespørgselsdesigngitteret skal du angive følgende:DayOfMonthBorn: DatePart("d",[BirthDate])Dette udtryk henter dagen i måneden fra BirthDate ved hjælp af funktionen DatePart .

  4. Fjern markeringen i afkrydsningsfelterne i rækken Vis for hvert af de to udtryk, du lige har angivet.

  5. Klik på rækken Sortér for hvert udtryk, og vælg derefter Stigende.

  6. I rækken Kriterier i kolonnen Fødselsdato skal du skrive følgende udtryk:Month([Fødselsdato]) > Month(Date()) OR Month([Birth Date])= Month(Date()) AND Day([Birth Date])>Day(Date())Dette udtryk gør følgende:

    • Month( [Fødselsdato]) > Month(Date()) angiver, at fødselsdatoen for hver medarbejder falder i en fremtidig måned.

    • Month( [Birth Date])= Month(Date()) And Day([Birth Date])>Day(Date()) angiver, at hvis fødselsdatoen forekommer i den aktuelle måned, falder fødselsdagen på eller efter den aktuelle dag.

      Kort sagt udelukker dette udtryk alle poster, hvor fødselsdagen forekommer mellem den 1. januar og den aktuelle dato.

      Tip!:  Du kan få flere eksempler på udtryk for forespørgselskriterier i artiklen Eksempler på forespørgselskriterier.

  7. Skriv 3 i feltet Return i gruppen Konfiguration af forespørgsel under fanen Design.

  8. Klik på Kør Knapflade i gruppen Resultater under fanen Design.

Bemærk!:  I din egen forespørgsel, der bruger dine egne data, kan du nogle gange se flere poster, end du har angivet. Hvis dine data indeholder flere poster, der deler en værdi, der er blandt de øverste værdier, returnerer forespørgslen alle disse poster, selvom det betyder, at du returnerer flere poster, end du ønskede.

Toppen af siden

Finde de seneste eller mest seneste datoer for grupper af poster

Du kan bruge en totalforespørgsel til at finde de tidligste eller seneste datoer for poster, der falder i grupper, f.eks. begivenheder grupperet efter by. En totalforespørgsel er en udvælgelsesforespørgsel, der bruger aggregeringsfunktioner (f.eks . Gruppér efter, Mi, Maks, Antal, Første og Sidste) til at beregne værdier for hvert outputfelt.

Medtag det felt, du vil bruge til kategorier – til gruppering efter – og feltet med værdier, du vil opsummere. Hvis du medtager andre outputfelter – f.eks. navnene på kunder, når du grupperer efter hændelsestype – bruger forespørgslen også disse felter til at oprette grupper og ændrer resultaterne, så de ikke besvarer dit oprindelige spørgsmål. Hvis du vil navngive rækkerne ved hjælp af andre felter, skal du oprette en ekstra forespørgsel, der bruger totalforespørgslen som kilde, og føje de ekstra felter til den pågældende forespørgsel.

Tip!:  At opbygge forespørgsler i trin er en meget effektiv strategi for besvarelse af mere avancerede spørgsmål. Hvis du har problemer med at få en kompliceret forespørgsel til at fungere, skal du overveje, om du kan opdele den i en række enklere forespørgsler.

Oprette en totalforespørgsel

Denne procedure bruger eksempeltabellen Events og EventType-eksempeltabellen til at besvare dette spørgsmål:

Hvornår var den seneste begivenhed for hver begivenhedstype, bortset fra koncerter?

  1. Klik på Forespørgselsdesign i gruppen Forespørgsler under fanen Opret.

  2. Dobbeltklik på tabellerne Events og EventType. Hver tabel vises i den øverste del af Forespørgselsdesigner.

  3. Dobbeltklik på feltet EventType i tabellen EventType og feltet EventDate fra tabellen Events for at føje felterne til forespørgselsdesigngitteret.

  4. I forespørgselsdesigngitteret i rækken Kriterier i feltet EventType skal du angive <>Koncert.

    Tip!:  Du kan få flere eksempler på kriterieudtryk i artiklen Eksempler på forespørgselskriterier.

  5. På fanen Design i gruppen Vis/skjul skal du klikke på Totaler.

  6. Klik på rækken Total i feltet EventDate i forespørgselsdesigngitteret, og klik derefter på Maks.

  7. Klik på Vis i gruppen Resultater under fanen Design , og klik derefter på SQL-visning.

  8. I SQL-vinduet skal du i slutningen af SELECT-delsætningen lige efter nøgleordet AS erstatte MaxOfEventDate med MostRecent.

  9. Gem forespørgslen som MostRecentEventByType.

Opret en anden forespørgsel for at tilføje flere data

Denne procedure bruger forespørgslen MostRecentEventByType fra den foregående procedure til at besvare dette spørgsmål:

Hvem var kunden ved den seneste begivenhed for hver hændelsestype?

  1. Klik på Forespørgselsdesign i gruppen Forespørgsler under fanen Opret.

  2. Dobbeltklik på forespørgslen MostRecentEventByType under fanen Forespørgsler .

  3. På fanen Tabeller skal du dobbeltklikke på tabellen Hændelser og tabellen Kunder.

  4. Dobbeltklik på følgende felter i Forespørgselsdesigner:

    1. Dobbeltklik på EventType i tabellen Events.

    2. Dobbeltklik på MostRecent På forespørgslen MostRecentEventByType.

    3. Dobbeltklik på Firma i tabellen Kunder.

  5. Vælg Stigende i rækken Sortér i kolonnen EventType i forespørgselsdesigngitteret.

  6. Klik på Kør i gruppen Resultater under fanen Design.

Toppen af siden

Har du brug for mere hjælp?

Vil du have flere indstillinger?

Udforsk abonnementsfordele, gennemse kurser, få mere at vide om, hvordan du sikrer din enhed og meget mere.