Hallo Leute,
bitte helft mir SQL-Laien weiter. Diverse Internetforen bieten zwar Lösungsschnipsel an, ich kriege daraus aber kein Bild für meine Lösung zusammen. Das Problem (als vereinfachtes Beispiel wie folgt):
Ich habe mit MS-Access 2010 zwei Tabellen tb_AG (Artikelgruppen) und tb_Art (Artikel), die über das AutoWert-Feld ID_AG in tb_AG in einer 1:n-Beziehung stehen.
Zu jeder Artikelgruppe gibt also n Datensätze in tb_Art.
Die Abfrage soll zu jeder Artikelgruppe nur den jeweils letzten DS (hier gemeint: den höchsten AutoWert) anzeigen.
Mein Lösungsversuch bestand darin, die jeweils einzelnen SQL-Abfragen zu verschachteln (Max-Wert ab FROM):
SELECT
tb_Art.ID_AG,
ID_Art
FROM
(SELECT ID_AG, ID_Art
FROM tb_Art
WHERE (((tb_Art.ID_Art)=(SELECT Max(ID_Art) FROM tb_Art)))
INNER JOIN
tb_AG
ON
tb_AG.ID_AG = tb_Art.ID_AG;
Ist aber falsch, das ist mir klar. Mehr aber leider auch nicht.
Ich würde mich sehr über einen Lösungsvorschlag freuen!
Jobbi
bitte helft mir SQL-Laien weiter. Diverse Internetforen bieten zwar Lösungsschnipsel an, ich kriege daraus aber kein Bild für meine Lösung zusammen. Das Problem (als vereinfachtes Beispiel wie folgt):
Ich habe mit MS-Access 2010 zwei Tabellen tb_AG (Artikelgruppen) und tb_Art (Artikel), die über das AutoWert-Feld ID_AG in tb_AG in einer 1:n-Beziehung stehen.
Zu jeder Artikelgruppe gibt also n Datensätze in tb_Art.
Die Abfrage soll zu jeder Artikelgruppe nur den jeweils letzten DS (hier gemeint: den höchsten AutoWert) anzeigen.
Mein Lösungsversuch bestand darin, die jeweils einzelnen SQL-Abfragen zu verschachteln (Max-Wert ab FROM):
SELECT
tb_Art.ID_AG,
ID_Art
FROM
(SELECT ID_AG, ID_Art
FROM tb_Art
WHERE (((tb_Art.ID_Art)=(SELECT Max(ID_Art) FROM tb_Art)))
INNER JOIN
tb_AG
ON
tb_AG.ID_AG = tb_Art.ID_AG;
Ist aber falsch, das ist mir klar. Mehr aber leider auch nicht.
Ich würde mich sehr über einen Lösungsvorschlag freuen!
Jobbi