Finde poster, der har de seneste eller de seneste datoer

I denne artikel forklares det, hvordan du kan bruge forespørgsler med højeste værdier og totalforespørgsler til at finde de seneste eller tidligste datoer i et sæt poster. Dette kan hjælpe dig med at besvare en række forretningsmæssige spørgsmål, f.eks. hvornår en kunde senest 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 med de højeste værdier mod 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 bestemt dato for hver by, din virksomhed driver. Hvis det er tilfældet, bliver byer til kategorier (du skal finde dataene pr. by), så du bruger en totalforespørgsel.

Når du bruger en forespørgsel med de højeste 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 forretningsmæssige spørgsmål, f.eks. følgende:

  • Hvem har haft det største salg for nylig?

  • Hvornår afde en kunde sidste gang en ordre?

  • Hvornår er de næste tre fødselsdage i teamet?

Hvis du vil oprette en forespørgsel med den højeste 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, kan 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 til at returnere den tidligste eller seneste dato.

Denne artikel forudsætter, at de datoværdier, du bruger, har datatypen Dato/klokkeslæt. Hvis dine datoværdier er i et tekstfelt, .

Overvej at bruge et filter i stedet for en forespørgsel med de højeste værdier

Et filter er normalt 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 højeste værdier eller anvende et filter:

  • Hvis du vil returnere alle de poster, hvor datoen stemmer overens, ligger 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 angivet antal poster, der har de seneste eller seneste datoer i et felt, og du ikke kender de nøjagtige datoværdier, eller de er ligegyldige, skal du oprette en forespørgsel med de højeste værdier. Hvis du f.eks. vil se de fem bedste salgstal, 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 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

05-feb-1968

10-Jun-1994

Heloo

Waleed

52 1st St.

Boston

USA

22-Maj-1957

22-11-1996

Pica

Guido

3122 75th Ave. S.W.

Seattle

USA

11-11-1960

11-03-2000

Bagel

Jane 1.

1 Contoso Blvd.

London

Storbritannien

22-marts-1964

22-Jun-1998

Pris

Julian

Calle Smith 2

Mexico City

Mexico

05-Jun-1972

05-jan-2002

Hughes

Ane

3122 75th St. S.

Seattle

USA

23-jan-1970

23-apr-1999

Riley

Steve

67 Big St.

Tampa

USA

14-apr-1964

14-okt-2004

Og så er det ikke det, der

2010

2 næsefuld pkwy

Portland

USA

29-okt-1959

29-marts 1997

EventType-tabellen    

TypeID

Hændelsestype

1

Produktlancering

2

Funktionen Corporate

3

Funktionen Private

4

Fund Raiser

5

Messe

6

Forelæsning

7

Koncert

8

Exhibit

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

Mandar Samant

6

Adventure Works

Brian Burke

7

Design Institute

Jaka Ogy

8

Fine art-skole

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 Corporate

Tailspin Toys

4/21/2011

DKK 8.000

3

Messe

Tailspin Toys

01-05-2011

DKK 25.000

4

Exhibit

Graphic Design Institute

5/13/2011

kr. 45.000

5

Messe

Contoso, Ltd.

5/14/2011

DKK 55.000

6

Koncert

Fine art-skole

5/23/2011

DKK 12.000

7

Produktlancering

A. Datum

6/1/2011

DKK 15.000

8

Produktlancering

Wingtip Toys

6/18/2011

DKK 21.000

9

Fund Raiser

Adventure Works

6/22/2011

DKK 1.300

10

Forelæsning

Graphic Design Institute

6/25/2011

DKK 2.450

11

Forelæsning

Contoso, Ltd.

04-07-2011

DKK 3.800

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-relationerne til tabellen Hændelser. I dette tilfælde deler tabellen Hændelser felterne Kunde-id og TypeID. De totalforespørgsler, der er beskrevet i 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 højeste værdier.

Opret en grundlæggende forespørgsel om højeste 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. Tilføj de felter, du vil bruge i forespørgslen, i designgitteret. Du kan dobbeltklikke på hvert felt eller trække og slippe hvert felt i en tom celle i feltrækken.

    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 Funktioner under fanen Design, og angiv enten det antal poster, du vil have vist, eller vælg en indstilling på listen.

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

  7. Gem forespørgslen som NextBirthDays.

Du kan se, at denne type af topværdiforespørgsel kan besvare grundlæggende spørgsmål, f.eks. hvem der er den ældste eller mindste person i virksomheden. De næste trin forklarer, 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 medarbejders fødselsdage.

Føj kriterier til forespørgslen

I disse trin bruges den forespørgsel, der blev oprettet i den foregående procedure. Du kan følge sammen med en anden forespørgsel med de højeste værdier, så længe den indeholder faktiske Dato/klokkeslæt-data, 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 ved 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 Fødselsdato skal du skrive følgende:
    MonthRuden: DatePart("m",[Fødselsdato]).
    Dette udtryk henter måneden fra Fødselsdato ved hjælp af funktionen DatePart.

  3. I den næste kolonne i forespørgselsdesigngitteret skal du angive følgende:
    DayOfMonthRuden: DatePart("d",[Fødselsdato])Dette udtryk henter dagen i måneden fra Fødselsdato 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.

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

      Kort sagt udelader dette udtryk alle poster, hvor fødselsdagen forekommer mellem 1. januar og dags dato.

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

  7. Skriv 3 i feltet Retur i gruppen Konfiguration af forespørgsel under fanenDesign.

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

Bemærk!:  I din egen forespørgsel med 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 der skal returneres flere poster, end du ønskede.

Toppen af siden

Finde de seneste eller de 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. Gruppere efter, Mi,Maks,Tæl, Første og Sidste) til at beregne værdier for hvert outputfelt.

Medtag det felt, du vil bruge til kategorier – til at gruppere efter – og feltet med værdier, der skal opsummeres. 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 lave grupper, så resultaterne ændres, så de ikke besvarer det oprindelige spørgsmål. Hvis du vil navnlægge 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 forespørgslen.

Tip!:  At opbygge forespørgsler i trin er en meget effektiv strategi til at besvare 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 mere enkle forespørgsler.

Oprette en totalforespørgsel

Denne procedure bruger eksempeltabellen Hændelser ogeksempeltabellen EventType til at besvare dette spørgsmål:

Hvornår var den seneste begivenhed af hver begivenhedstype, undtagen hvad der var tilst?

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

  2. Dobbeltklik på tabellerne Hændelser 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 Hændelser for at føje felterne til forespørgselsdesigngitteret.

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

    Tip!:  Du kan finde 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.

Oprette 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 af hver begivenhedstype?

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

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

  3. Dobbeltklik på tabellen Hændelser og tabellen Kunder under fanen Tabeller.

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

    1. Dobbeltklik på EventType i tabellen Hændelser.

    2. Dobbeltklik på MostRecentEventByType-forespørgslen på 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?

Udvid dine Office-færdigheder
Gå på opdagelse i kurser
Få nye funktioner først
Bliv Office Insider

Var disse oplysninger nyttige?

×