So, hier ist mein Problem nochmal in Form einer kleinen Access-Datenbank. Gleich vorweg: Die Tabellen und Spalten haben etwas andere Namen als bisher hier im Thread verwendet, aber die DB enthält eine Abfrage mit allen benötigten Spalten. Vergesst am besten einfach mal alles, was oben geschrieben wurde
Was in der Access-DB anders ist als in SQL Server: Ich mußte alle Felder gruppieren, um das gleiche Ergebnis zu bekommen, das ich in SQL Server ohne Gruppierung bekomme. Falls das keine Eigenheit von Access ist, könnte mir u.U. ein kleiner Fehler beim Datenexport unterlaufen sein. Ich sehe aber nicht, wo.
Bisher ging die Frage darum, die höchste ID (E_ID) pro LFD_NR auszugeben. Jetzt habe ich erkannt, daß es besser wäre, den Datensatz mit dem größten Wert von STAMM_1.AUSF auszugeben (nicht STAMM.AUSF!), weil ich nicht sicher bin, ob E_ID immer aufsteigend vergeben wird.
Der Sinn der zweimaligen Verknüpfung von STAMM ist, über die Tabelle PATH die zu jeder E_ID gehörenden Werte von AUSF zu bekommen. Und davon ist pro LFD_NR jeweils der Datensatz gefragt, der den höchsten Wert enthält. In dem angefügten Screenshot habe ich das mal (bis LFD_NR=60a) markiert, um es zu verdeutlichen.
Die letztendliche Abfrage soll also folgendes machen:
Was in der Access-DB anders ist als in SQL Server: Ich mußte alle Felder gruppieren, um das gleiche Ergebnis zu bekommen, das ich in SQL Server ohne Gruppierung bekomme. Falls das keine Eigenheit von Access ist, könnte mir u.U. ein kleiner Fehler beim Datenexport unterlaufen sein. Ich sehe aber nicht, wo.
Bisher ging die Frage darum, die höchste ID (E_ID) pro LFD_NR auszugeben. Jetzt habe ich erkannt, daß es besser wäre, den Datensatz mit dem größten Wert von STAMM_1.AUSF auszugeben (nicht STAMM.AUSF!), weil ich nicht sicher bin, ob E_ID immer aufsteigend vergeben wird.
Der Sinn der zweimaligen Verknüpfung von STAMM ist, über die Tabelle PATH die zu jeder E_ID gehörenden Werte von AUSF zu bekommen. Und davon ist pro LFD_NR jeweils der Datensatz gefragt, der den höchsten Wert enthält. In dem angefügten Screenshot habe ich das mal (bis LFD_NR=60a) markiert, um es zu verdeutlichen.
Die letztendliche Abfrage soll also folgendes machen:
- Im Ergebnis von Abfrage1 die Zeilen mit gleichem Wert für LFD_NR suchen (rote Rahmen im Screenshot, z.B. "10").
- In dieser Zeilengruppe diejenige Zeile finden, die in Spalte STAMM_1.AUSF (grüne Rahmen) den höchsten Wert hat. Bei "10" wäre das der Wert 4.
- Die gefundene Zeile unverändert ausgeben. Im Screenshot sind die Zeilen gelb unterlegt. Zum Schluß möchte ich nur diese gelben Zeilen haben.