Gilt für
Access 2010

In diesem Artikel wird erläutert, wie Sie Abfragen mit Spitzenwerten und Gesamtsummenabfragen verwenden, um die neuesten oder frühesten Datumsangaben in einer Gruppe von Datensätzen zu finden. Dies kann Ihnen helfen, eine Vielzahl von Geschäftlichen Fragen zu beantworten, z. B. wann ein Kunde zuletzt eine Bestellung aufgegeben hat oder welche fünf Quartale für den Verkauf nach Ort am besten waren.

Inhalt dieses Artikels

Übersicht

Sie können Daten bewerten und die Elemente mit dem höchsten Rang überprüfen, indem Sie eine Abfrage mit den höchsten Werten verwenden. Eine Abfrage mit dem höchsten Wert ist eine Auswahlabfrage, die eine angegebene Anzahl oder einen Prozentwert von Werten vom Anfang der Ergebnisse zurückgibt, z. B. die fünf beliebtesten Seiten auf einer Website. Sie können eine Spitzenwertabfrage für jede Art von Werten verwenden– sie müssen keine Zahlen sein.

Wenn Sie Ihre Daten gruppieren oder zusammenfassen möchten, bevor Sie sie bewerten, müssen Sie keine Spitzenwertabfrage verwenden. Angenommen, Sie müssen die Verkaufszahlen für ein vorgegebenes Datum für jede Stadt ermitteln, in der Ihr Unternehmen tätig ist. In diesem Fall werden die Städte zu Kategorien (Sie müssen die Daten pro Stadt suchen), weshalb Sie also eine Gesamtsummenabfrage verwenden.

Wenn Sie eine Spitzenwertabfrage verwenden, um Datensätze zu finden, die die neuesten oder frühesten Datumsangaben in einer Tabelle oder Gruppe von Datensätzen enthalten, können Sie eine Vielzahl von Geschäftsfragen beantworten, z. B. die folgenden:

  • Wer hat in letzter Zeit die meisten Verkäufe erzielt?

  • Wann hat ein Kunde zuletzt eine Bestellung getätigt?

  • Wann sind die nächsten drei Geburtstage im Team?

Um eine Abfrage mit dem höchsten Wert zu erstellen, erstellen Sie zunächst eine Auswahlabfrage. Sortieren Sie dann die Daten nach Ihrer Frage – ob Sie oben oder unten suchen. Wenn Sie die Daten gruppieren oder zusammenfassen müssen, wandeln Sie die Auswahlabfrage in eine Gesamtsummenabfrage um. Sie können dann eine Aggregatfunktion wie Max oder Min verwenden, um den höchsten oder niedrigsten Wert zurückzugeben, oder First oder Last , um das früheste oder letzte Datum zurückzugeben.

In diesem Artikel wird davon ausgegangen, dass die verwendeten Datumswerte den Datentyp Datum/Uhrzeit aufweisen. Wenn sich Ihre Datumswerte in einem Textfeld befinden, ist .

Erwägen Sie die Verwendung eines Filters anstelle einer Abfrage mit spitzen Werten.

Ein Filter ist in der Regel besser, wenn Sie ein bestimmtes Datum im Auge haben. Um zu bestimmen, ob Sie eine Spitzenwertabfrage erstellen oder einen Filter anwenden sollten, berücksichtigen Sie folgende Punkte:

  • Wenn Sie alle Datensätze zurückgeben möchten, bei denen das Datum übereinstimmt, vor oder später als ein bestimmtes Datum liegt, verwenden Sie einen Filter. Um beispielsweise die Datumsangaben für Verkäufe anzuzeigen, die zwischen April und Juli liegen, wenden Sie einen Filter an.

  • Wenn Sie eine angegebene Menge von Datensätzen zurückgeben möchten, die die aktuellsten oder letzten Datumsangaben in einem Feld enthalten, und Sie die genauen Datumswerte nicht kennen oder sie keine Rolle spielen, erstellen Sie eine Abfrage mit den höchsten Werten. Verwenden Sie beispielsweise eine Abfrage mit den höchsten Werten, um die fünf besten Verkaufsquartale anzuzeigen.

Weitere Informationen zum Erstellen und Verwenden von Filtern finden Sie im Artikel Anwenden eines Filters zum Anzeigen ausgewählter Datensätze in einer Access-Datenbank.

Seitenanfang

Vorbereiten von Beispieldaten für die Verwendung der Beispiele

Die Schritte in diesem Artikel verwenden die Daten in den folgenden Beispieltabellen.

Die Tabelle "Employees"   

Nachname

Vorname

Adresse

Ort

CountryOrR egion

Geburtsdatum

Einstellungsdatum

Bott

Jörg

Hauptstraße 1

Berlin

Deutschland

05-Feb-1968

10-Jun-1994

Potra

Cristina

Montagsweg 123

Kiel

Deutschland

22-Mai-1957

22-Nov-1996

Probst

David

3122 75. Ave. S.W.

Frankfurt am Main

Deutschland

11-Nov-1960

11-Mrz-2000

Casselman

Kevin

Beispielallee 234

München

Deutschland

22-Mrz-1964

22-Jun-1998

Preis

Per

Donnerstagsgasse 345

Hamburg

Deutschland

05-Jun-1972

05-Jan-2002

Ralls

Kim

Beispielgasse 123

Frankfurt am Main

Deutschland

23-Jan-1970

23-Apr-1999

Rienstra

Martina

Mittwochsallee 345

Essen

Deutschland

14-Apr-1964

14-Okt-2004

Rivas

Gretchen

Donnerstagsplatz 123

Dortmund

Deutschland

29-Okt-1959

29-Mrz-1997

Die EventType-Tabelle   

TypeID

Ereignistyp

1

Produkteinführung

2

Unternehmensveranstaltung

3

Privatveranstaltung

4

Spendenaktion

5

Messeshow

6

Vortrag

7

Konzert

8

Ausstellung

9

Straßenveranstaltung

Die Tabelle "Kunden"   

CustomerID

Firma

Kontakt

1

Contoso, Ltd. Grafik

Kai Axford

2

Tailspin Toys

Heike Adams

3

Fabrikam

Karen Berg

4

Wingtip Toys

Lucio Iallo

5

A. Datum

Mandar Samant

6

Adventure Works

Markus Zulechner

7

Design Institute

Jaka Stele

8

School of Fine Art

Milena Doumanova

Die Tabelle "Veranstaltungen"   

EventID

Ereignistyp

Kunde

Ereignisdatum

Preis

1

Produkteinführung

Contoso, Ltd.

4/14/2011

10.000 €

2

Unternehmensveranstaltung

Tailspin Toys

4/21/2011

8.000 €

3

Messeshow

Tailspin Toys

01.05.2011

25.000 €

4

Ausstellung

Graphic Design Institute

5/13/2011

4.500 €

5

Messeshow

Contoso, Ltd.

5/14/2011

55.000 €

6

Konzert

School of Fine Art

5/23/2011

12.000 €

7

Produkteinführung

A. Datum

6/1/2011

15.000 €

8

Produkteinführung

Wingtip Toys

6/18/2011

21.000 €

9

Spendenaktion

Adventure Works

6/22/2011

1.300 €

10

Vortrag

Graphic Design Institute

6/25/2011

2.450 €

11

Vortrag

Contoso, Ltd.

04.07.2011

3.800 €

12

Straßenveranstaltung

Graphic Design Institute

04.07.2011

5.500 €

Hinweis: Bei den Schritten in diesem Abschnitt wird vorausgesetzt, dass sich die Tabellen "Kunden" und "Veranstaltungstyp" auf der Seite "1" von 1: n-Beziehungen mit der Tabelle "Veranstaltungen" befinden. In diesem Fall nutzt die Tabelle "Veranstaltungen" dieselben Felder "CustomerID" und "TypeID". Ohne diese Beziehungen funktionieren die in den nächsten Abschnitten beschriebenen Gesamtsummenabfragen nicht.

Einfügen der Beispieldaten in Excel-Arbeitsblätter

  1. Starten Sie Excel. Eine leere Arbeitsmappe wird geöffnet.

  2. Drücken Sie UMSCHALT+F11, um ein Arbeitsblatt einzufügen (Sie benötigen vier).

  3. Kopieren Sie die Daten aus jeder Beispieltabelle in ein leeres Arbeitsblatt. Fügen Sie die Spaltenüberschriften (die erste Zeile) ein.

Erstellen von Datenbanktabellen aus den Arbeitsblättern

  1. Wählen Sie die Daten aus dem ersten Arbeitsblatt aus, einschließlich der Spaltenüberschriften.

  2. Klicken Sie mit der rechten Maustaste auf den Navigationsbereich, und klicken Sie dann auf Einfügen.

  3. Klicken Sie auf Ja , um zu bestätigen, dass die erste Zeile Spaltenüberschriften enthält.

  4. Wiederholen Sie die Schritte 1 bis 3 für jedes der verbleibenden Arbeitsblätter.

Suchen des letzten oder letzten Datums

In den Schritten in diesem Abschnitt werden die Beispieldaten verwendet, um den Prozess zum Erstellen einer Abfrage mit den höchsten Werten zu veranschaulichen.

Erstellen einer einfachen Spitzenwertabfrage

  1. Klicken Sie auf der Registerkarte Erstellen in der Gruppe Abfragen auf Abfrageentwurf.

  2. Doppelklicken Sie auf die Tabelle Employees, und klicken Sie dann auf Schließen.

    Wenn Sie die Beispieldaten verwenden, fügen Sie der Abfrage die Tabelle "Mitarbeiter" hinzu.

  3. Fügen Sie die Felder, die Sie in Ihrer Abfrage verwenden möchten, dem Entwurfsbereich hinzu. Sie können auf jedes Feld doppelklicken, oder Sie ziehen jedes Feld in eine leere Zelle in der Zeile Feld und legen es dort ab.

    Wenn Sie die Beispieltabelle verwenden, fügen Sie die Felder "Vorname", "Nachname" und "Geburtsdatum" hinzu.

  4. Klicken Sie in dem Feld, das Ihre oberen oder unteren Werten (das Feld "Geburtsdatum", wenn Sie die Beispieltabelle verwenden) enthält, auf die Zeile Sortieren, und wählen Sie entweder Aufsteigend oder Absteigend aus.

    Die Sortierreihenfolge "Absteigend" gibt das jüngste Datum zurück, während "Aufsteigend" das früheste Datum zurückgibt.

    Wichtig: Sie müssen in der Zeile Sortieren nur für Felder einen Wert festlegen, die Ihre Datumswerte enthalten. Wenn Sie eine Sortierreihenfolge für ein anderes Feld angeben, gibt die Abfrage nicht die gewünschten Ergebnisse zurück.

  5. Klicken Sie auf der Registerkarte Entwurf in der Gruppe Tools auf den Abwärtspfeil neben Alle (die Spitzenwerte-Liste), und geben Sie die Anzahl der Datensätze ein, die Sie anzeigen möchten, oder wählen Sie eine Option in der Liste aus.

  6. Klicken Sie auf Ausführen Schaltflächensymbol, um die Abfrage auszuführen und die Ergebnisse in der Datenblattansicht anzuzeigen.

  7. Speichern Sie die Abfrage als NextBirthDays.

Sie können sehen, dass Sie mit diesem Typ von Spitzenwertabfrage grundlegende Fragen beantworten können (beispielsweise nach der ältesten oder jüngsten Person im Unternehmen). Im nächsten Schritt wird erläutert, wie Sie Ausdrücke und andere Kriterien verwenden, um die Leistung und Flexibilität der Abfrage zu steigern. Die im nächsten Schritt dargestellten Kriterien geben die nächsten drei Mitarbeitergeburtstage zurück.

Hinzufügen von Kriterien zur Abfrage

In diesen Schritten wird die abfrage verwendet, die im vorherigen Verfahren erstellt wurde. Sie können eine andere Spitzenwertabfrage verfolgen, solange sie tatsächliche Datums-/Uhrzeitdaten und keine Textwerte enthält.

Tipp:  Wenn Sie die Funktionsweise dieser Abfrage besser verstehen möchten, wechseln Sie bei jedem Schritt zwischen der Entwurfsansicht und der Datenblattansicht. Wenn Sie den tatsächlichen Abfragecode anzeigen möchten, wechseln Sie zur SQL-Ansicht. Um zwischen Ansichten zu wechseln, klicken Sie mit der rechten Maustaste auf die Registerkarte oben in der Abfrage, und klicken Sie dann auf die gewünschte Ansicht.

  1. Klicken Sie im Navigationsbereich mit der rechten Maustaste auf die Abfrage NextBirthDays, und klicken Sie dann auf Entwurfsansicht.

  2. Geben Sie im Abfrageentwurfsbereich in der Spalte rechts neben BirthDate Folgendes ein:MonthBorn: DatePart("m";[BirthDate]).Dieser Ausdruck extrahiert den Monat aus BirthDate mithilfe der DatePart-Funktion .

  3. Geben Sie in der nächsten Spalte des Abfrageentwurfsbereichs Folgendes ein:DayOfMonthBorn: DatePart("d",[BirthDate])Dieser Ausdruck extrahiert den Tag des Monats aus BirthDate mithilfe der DatePart-Funktion .

  4. Deaktivieren Sie die Kontrollkästchen in der Zeile Anzeigen für jeden der beiden soeben eingegebenen Ausdrücke.

  5. Klicken Sie für jeden Ausdruck auf die Zeile Sortieren , und wählen Sie dann Aufsteigend aus.

  6. Geben Sie in der Zeile Kriterien der Spalte Geburtsdatum den folgenden Ausdruck ein:Month([Birth Date]) > Month(Date(Date()) OR Month([Birth Date]))= Month(Date()) AND Day([Birth Date]))>Day(Date()))This expression does the following:

    • Month( [Geburtsdatum]) > Month(Date()) gibt an, dass das Geburtsdatum jedes Mitarbeiters in einen zukünftigen Monat fällt.

    • Der Monat([Geburtsdatum])= Monat(Datum()) und Tag([Geburtsdatum])>Day(Date()) gibt an, dass der Geburtstag auf oder nach dem aktuellen Tag liegt, wenn das Geburtsdatum im aktuellen Monat liegt.

      Kurz gesagt, dieser Ausdruck schließt alle Datensätze aus, bei denen der Geburtstag zwischen dem 1. Januar und dem aktuellen Datum liegt.

      Tipp:  Weitere Beispiele für Abfragekriterienausdrücke finden Sie im Artikel Beispiele für Abfragekriterien.

  7. Geben Sie auf der Registerkarte Entwurf in der Gruppe Abfrageeinrichtung den Wert 3 in das Feld Rückgabe ein.

  8. Klicken Sie auf der Registerkarte Entwurf in der Gruppe Ergebnisse auf Ausführen Schaltflächensymbol.

Hinweis:  In Ihrer eigenen Abfrage, die Ihre eigenen Daten verwendet, werden manchmal mehr Datensätze angezeigt, als Sie angegeben haben. Wenn Ihre Daten mehrere Datensätze enthalten, die einen Wert gemeinsam verwenden, der zu den obersten Werten gehört, gibt Ihre Abfrage alle datensätze zurück, auch wenn dies bedeutet, dass mehr Datensätze als gewünscht zurückgegeben werden.

Seitenanfang

Suchen der letzten oder letzten Datumsangaben für Gruppen von Datensätzen

Sie verwenden eine Gesamtsummenabfrage, um die frühesten oder letzten Datumsangaben für Datensätze zu finden, die in Gruppen fallen, z. B. ereignisse nach Stadt gruppiert. Eine Gesamtsummenabfrage ist eine Auswahlabfrage, die Aggregatfunktionen (z. B . Gruppieren nach, Min, Max, Count, First und Last) verwendet, um Werte für jedes Ausgabefeld zu berechnen.

Fügen Sie das Feld ein, das Sie für Kategorien verwenden möchten – zum Gruppieren nach – und das Feld mit werten, die Sie zusammenfassen möchten. Wenn Sie andere Ausgabefelder einschließen – z. B. die Namen von Kunden bei der Gruppierung nach Ereignistyp –, verwendet die Abfrage diese Felder auch, um Gruppen zu erstellen und die Ergebnisse so zu ändern, dass sie Ihre ursprüngliche Frage nicht beantworten. Um die Zeilen mit anderen Feldern zu bezeichnen, erstellen Sie eine zusätzliche Abfrage, die die Gesamtsummenabfrage als Quelle verwendet, und fügen der Abfrage die zusätzlichen Felder hinzu.

Tipp:  Das Erstellen von Abfragen in Schritten ist eine sehr effektive Strategie zum Beantworten komplexerer Fragen. Wenn Sie Probleme haben, eine komplizierte Abfrage zu funktionieren, überlegen Sie, ob Sie sie in eine Reihe einfacherer Abfragen aufteilen könnten.

Erstellen einer Gesamtsummenabfrage

In diesem Verfahren werden die Ereignisbeispieltabelle und die EventType-Beispieltabelle verwendet, um diese Frage zu beantworten:

Wann war die letzte Veranstaltung jedes Veranstaltungstyps, ohne Konzerte?

  1. Klicken Sie auf der Registerkarte Erstellen in der Gruppe Abfragen auf Abfrageentwurf.

  2. Doppelklicken Sie auf die Tabellen Events und EventType. Jede Tabelle wird im oberen Abschnitt des Abfrage-Designers angezeigt.

  3. Doppelklicken Sie in der Tabelle Events auf das Feld EventType der Tabelle EventType und auf das Feld EventDate, um die Felder dem Abfrageentwurfsraster hinzuzufügen.

  4. Geben Sie im Abfrageentwurfsbereich in der Zeile Kriterien des Felds EventType<>Concert ein.

    Tipp:  Weitere Beispiele für Kriterienausdrücke finden Sie im Artikel Beispiele für Abfragekriterien.

  5. Klicken Sie auf der Registerkarte Entwurf in der Gruppe Einblenden/Ausblenden auf Summen.

  6. Klicken Sie im Abfrageentwurfsbereich auf die Zeile Gesamt des Felds EventDate, und klicken Sie dann auf Max.

  7. Klicken Sie auf der Registerkarte Entwurf in der Gruppe Ergebnisse auf Ansicht, und klicken Sie dann auf SQL-Ansicht.

  8. Ersetzen Sie im SQL-Fenster am Ende der SELECT-Klausel direkt nach dem AS-Schlüsselwort (keyword) MaxOfEventDate durch MostRecent.

  9. Speichern Sie die Abfrage als MostRecentEventByType.

Erstellen einer zweiten Abfrage, um weitere Daten hinzuzufügen

In dieser Prozedur wird die MostRecentEventByType-Abfrage aus der vorherigen Prozedur verwendet, um diese Frage zu beantworten:

Wer war der Kunde beim letzten Ereignis jedes Ereignistyps?

  1. Klicken Sie auf der Registerkarte Erstellen in der Gruppe Abfragen auf Abfrageentwurf.

  2. Doppelklicken Sie auf der Registerkarte Abfragen auf die Abfrage MostRecentEventByType.

  3. Doppelklicken Sie auf der Registerkarte Tabellen auf die Tabelle Ereignisse und die Tabelle Customers.

  4. Doppelklicken Sie im Abfrage-Designer auf die folgenden Felder:

    1. Doppelklicken Sie in der Tabelle Ereignisse auf EventType.

    2. Doppelklicken Sie in der Abfrage MostRecentEventByType auf MostRecent.

    3. Doppelklicken Sie in der Tabelle Kunden auf Unternehmen.

  5. Wählen Sie im Abfrageentwurfsbereich in der Zeile Sortieren der Spalte EventType die Option Aufsteigend aus.

  6. Klicken Sie auf der Registerkarte Entwurf in der Gruppe Ergebnisse auf Ausführen.

Seitenanfang

Benötigen Sie weitere Hilfe?

Möchten Sie weitere Optionen?

Erkunden Sie die Abonnementvorteile, durchsuchen Sie Trainingskurse, erfahren Sie, wie Sie Ihr Gerät schützen und vieles mehr.