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.
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
- 
                  Start Excel. Der åbnes en tom projektmappe. 
- 
                  Tryk på Skift+F11 for at indsætte et regneark (du skal bruge fire). 
- 
                  Kopiér dataene fra hver eksempeltabel til et tomt regneark. Medtag kolonneoverskrifterne (den første række). 
Oprette databasetabeller ud fra regneark
- 
                  Markér dataene fra det første regneark, herunder kolonneoverskrifterne. 
- 
                  Højreklik på navigationsruden, og klik derefter på Sæt ind. 
- 
                  Klik på Ja for at bekræfte, at den første række indeholder kolonneoverskrifter. 
- 
                  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
- 
                  Klik på Forespørgselsdesign i gruppen Forespørgsler under fanen Opret. 
- 
                  Dobbeltklik på tabellen Medarbejdere, og klik derefter på Luk. Hvis du bruger eksempeldataene, skal du føje tabellen Medarbejdere til forespørgslen. 
- 
                  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. 
- 
                  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. 
- 
                  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. 
- 
                  Klik på Kør - 
                  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.
- 
                  Højreklik på forespørgslen NextBirthDays i navigationsruden, og klik derefter på Designvisning. 
- 
                  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 . 
- 
                  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 . 
- 
                  Fjern markeringen i afkrydsningsfelterne i rækken Vis for hvert af de to udtryk, du lige har angivet. 
- 
                  Klik på rækken Sortér for hvert udtryk, og vælg derefter Stigende. 
- 
                  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. 
 
- 
                      
- 
                  Skriv 3 i feltet Return i gruppen Konfiguration af forespørgsel under fanen Design. 
- 
                  Klik på Kør 
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.
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?
- 
                  Klik på Forespørgselsdesign i gruppen Forespørgsler under fanen Opret. 
- 
                  Dobbeltklik på tabellerne Events og EventType. Hver tabel vises i den øverste del af Forespørgselsdesigner. 
- 
                  Dobbeltklik på feltet EventType i tabellen EventType og feltet EventDate fra tabellen Events for at føje felterne til forespørgselsdesigngitteret. 
- 
                  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. 
- 
                  På fanen Design i gruppen Vis/skjul skal du klikke på Totaler. 
- 
                  Klik på rækken Total i feltet EventDate i forespørgselsdesigngitteret, og klik derefter på Maks. 
- 
                  Klik på Vis i gruppen Resultater under fanen Design , og klik derefter på SQL-visning. 
- 
                  I SQL-vinduet skal du i slutningen af SELECT-delsætningen lige efter nøgleordet AS erstatte MaxOfEventDate med MostRecent. 
- 
                  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?
- 
                  Klik på Forespørgselsdesign i gruppen Forespørgsler under fanen Opret. 
- 
                  Dobbeltklik på forespørgslen MostRecentEventByType under fanen Forespørgsler . 
- 
                  På fanen Tabeller skal du dobbeltklikke på tabellen Hændelser og tabellen Kunder. 
- 
                  Dobbeltklik på følgende felter i Forespørgselsdesigner: - 
                      Dobbeltklik på EventType i tabellen Events. 
- 
                      Dobbeltklik på MostRecent På forespørgslen MostRecentEventByType. 
- 
                      Dobbeltklik på Firma i tabellen Kunder. 
 
- 
                      
- 
                  Vælg Stigende i rækken Sortér i kolonnen EventType i forespørgselsdesigngitteret. 
- 
                  Klik på Kør i gruppen Resultater under fanen Design. 
 
                         
				 
				