Gruppierung von Datensätzen in MS Access (SQL)

Hallo zusammen.

Ich habe ein Problem mit einer Abfrage in MS Access 2003.

Habe eine Tabelle mit 3 Spalten: ID, Status_1 und Status_2.
Status_1 kann leer sein, die anderen Felder sind immer gefüllt.

Hier ein Auszug aus der Tabelle (hoffe sie wird lesbar dargestellt):

ID STAT\_1 STAT\_2
12345 00PEAP 21PR
12345 30VMQU 21PR
12345 40VMAU 51PI
654321 51PI
654321 45EV
654321 00KDFA 21PR
654321 00PEAP 21PR

Nun möchte ich auf die ID gruppieren und jeweils den ersten zur ID vorhandenen Datensatz ausgeben. In diesem Fall 12345 mit 00PEAP und 21PR, sowie 654321 mit einem leeren Status_1 und 51PI.

Habe schon versucht mit DISTINCT und DISTINCTROW zu arbeiten, mit den Aggregatfunktionen ErsterWert und LetzerWert, Min und Max aber nichts liefert mir das gewünscht Ergebnis…

Unter mySQL würde ich „einfach“ die Gruppierungsanweisung für die Status-Spalten weglassen und nur auf die ID gruppieren, wenn ich das aber in Access mache wird mir gesagt, dass die Status-Spalten kein Teil der Aggregatfunktion sind.

Hat da jemand eine Idee?

Vielen dank im vorraus und viele Grüße, Mark.

Hallo,

woher weiß Access, welches der erste oder letzte Wert ist?. Allein an der Darstellung (am Bildschirm) ist keine Reihenfolge definiert.

ID STAT_1 STAT_2
12345 00PEAP 21PR
12345 00PEAP 21PR
12345 40VMAU 51PI
654321 51PI
654321 45EV
654321 00KDFA 21PR
654321 00PEAP 21PR

Du kannst höchstens im Tabellenentwurf ein Sortierfeld angeben. das für Deine Anforderungen passt.

SELECT Tabelle1.ID, First(Tabelle1.Stat_1) AS ErsterWertvonStat_1, First(Tabelle1.Stat_2) AS ErsterWertvonStat_2
FROM Tabelle1
GROUP BY Tabelle1.ID

Viele Grüße vom Bodensee
Franz , DF6GL

PS: Feedback erwünscht!

Hallo auch,

leider kann ich am Tabellenentwurf nichts ändern, da es sich um eine verknüpfte Tabelle handelt, die sich auf einem Server befindet.

Aaaaaaber, ich habe es so eingestellt, dass die Datei, welche vom Server erstellt wird, entsprechend vorsortiert ist. Jetzt habe ich eine Reihenfolge definiert und die Aggregatfunktion „First“ macht genau das, was ich möchte.

Vielen Dank, ohne Deine Aussage

woher weiß Access, welches der erste oder letzte Wert ist?.
Allein an der Darstellung (am Bildschirm) ist keine
Reihenfolge definiert.

wäre ich nicht darauf gekommen, das so zu probieren.

Einen schönen Tag wünsche noch.
Mark