Zur Hauptseite ... Zum Onlinearchiv ... Zum Abonnement ... Zum Newsletter ... Zu den Tools ... Zum Impressum ... Zum Login ...

Maximum einer Gruppierung ermitteln

Das Maximum für Datensätze mit einem bestimmten Wert zu ermitteln, ist nicht schwer: Man verwendet einfach die Sortierung nach dem gewünschten Wert. Weniger einfach ist es, mehrere Maxima, und das auch noch für gruppierte Werte, herauszufinden.

Beispieldatenbank

Als Beispiel dient wieder einmal eine Tabelle der Nordwind-Datenbank: Aus der Tabelle Artikel soll für jede Kategorie der teuerste Artikel ermittelt werden. Die Tabelle sowie die erforderliche Abfrage finden Sie auf der Beispieldatenbank.

Abfrage erstellen

Um die Artikel mit dem höchsten Preis je Kategorie herauszufinden, verwenden Sie eine Abfrage. Diese erstellen Sie folgendermaßen:

  1. Öffnen Sie eine neue Abfrage in der Entwurfsansicht.
  2. Fügen Sie dem Entwurf die Tabelle Artikel hinzu.
  3. Klicken Sie im Entwurf aus die Tabelle und zeigen Sie deren Eigenschaftsfenster an.
  4. Stellen Sie die Eigenschaft Alias auf den Wert tbl1 ein (siehe Abbildung 1).
  5. Ziehen Sie die vier Felder Artikel-Nr, Artikelname, Kategorie-Nr und Einzelpreis hinzu.
  6. Stellen Sie das Kriterium des Feldes [Artikel-Nr] auf den folgenden Wert ein: In (SELECT TOP 1 tbl2.[Artikel-Nr] FROM Artikel AS tbl2 WHERE tbl1.[Kategorie-Nr] = tbl2.[Kategorie-Nr] ORDER BY tbl2.Einzelpreis DESC)

Abbildung 1: Entwurf der Abfrage zur Ermittlung der Extremwerte einer Gruppe

Unterabfrage als Kriterium

Das hier verwendete Kriterium ist eine sogenannte Unterabfrage. Die Besonderheit einer solchen Abfrage ist, dass sie nur ein Feld als Ergebnismenge enthalten darf. Alle anderen Felder müssen daher entweder Kriteriumsfelder sein oder zu einer Gruppierung oder Sortierung gehören.

Im vorliegenden Fall sucht die Unterabfrage denjenigen Datensatz aus der Tabelle Artikel aus, der die gleiche Kategorie wie der aus der Hauptabfrage und den größten Wert für das Feld Einzelpreis hat. Damit auch nur ein Wert ausgewählt wird, verwendet die Abfrage den Parameter TOP 1. Die Hauptabfrage zeigt die Details des hier gefundenen Wertes an.

Wenn Sie die Abfrage nun in der Formularansicht anzeigen, finden Sie die Artikel mit dem jeweils höchsten Einzelpreis in der jeweiligen Kategorie vor (siehe Abbildung 2).

Abbildung 2: Die Artikel mit dem höchsten Einzelpreis je Kategorie

© 2003-2010 André Minhorst Alle Rechte vorbehalten.