April 18, 2021, 02:34:51

Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!


Kompliziertere Datensatzauswertung mittels Abfrage lösen

Begonnen von BikeArno, April 01, 2021, 16:04:57

⏪ vorheriges - nächstes ⏩

BikeArno

Hallo,

ich möchte mittels einer Access-Abfrage eine Tabelle auswerten, wobei ich mit meinen Standardmethoden bisher scheiterte. Zur Verdeutlichung im Anhang ein Beispiel, wobei folgende Felder relevant sind:

WK-ID (Nummer eines Kurses) und Name (vereinfacht hier nur Nachname abgebildet). Alles unter WK-99 sind "alte" Kurse, ab WK-100 "neue Kurse". Das Feld "Kurs" kann ignoriert werden.

Ziel: Ich möchte in der Abfrage nur die Namen von Personen ausgegeben haben, die an den "neuen" Kursen (also an den Kursen WK-100 bis WK-104) teilgenommen haben und aber gleichzeitig auch noch nicht an "alten Kursen" WK-01 bis WK-03 teilnahmen.

Diese Namen sollen dann ohne Duplikate (also ohne Mehrfachnennungen ausgegeben werden). Ergebnis der Abfrage im Beispiel müsste also Klaus, Hans, Juta und Jule sein.


Lässt sich so eine "komplizierte" Aufgabe mit Access auf möglichst einfachen Wege lösen, wenn ja wie?

Gruß


BikeArno

Zitat von: ebs17 am April 01, 2021, 17:26:51Grundlagen - SQL ist leicht (15) - Mehrfachauswahl zum Filtern umsetzen

Danke. Ich entnehme dem Beitrag und der DB, dass sich die Aufgabe prinzipiell über Access lösen lässt.

Leider löst das aber mein Problem in der Praxis nicht, was vermutlich daran liegt, dass ich aus den Beispielen in der DB mangels meiner geringen Begabung keinen Lösungsrückschluss ziehen kann :-(

jojo3000

Hallo,

machs in kleinen Schritten und dann wird das nicht kompliziert.
Fange mit Deinen Daten an, mach eine neue Spalte mit Namen "alt_neu"
Der Feldwert für die alten Kurse ist "alt" der für die neuen Kurse "neu"
Das geht mit Änderungsabfragen in Access für große Datenmengen und schnell in Excel für kleine Datenmengen

1. Schritt: ermitteln der Leute die an neuen Kursen teilgenommen haben
eine Auswahlabfrage erstellen mit Name und "alt_neu" und als Kriterium "neu" eingeben, in den Abfrageeigenschaften kannst Du "keine Duplikate" auf ja stellen (Juta=Jutta?)

2. Schritt: ermittle in einer separaten Abfrage wer an den alten Kursen teilgenommen hat
3. Schritt: neue Abfrage mit beiden vorher erstellen Abfragen
mache einen left join von der ersten zur zweiten Abfrage
lass dir die Namen von der ersten und von der zweiten Abfrage anzeigen,
bei den Namen der zweiten Abfrage sollten einige Werte leer sein, genau das sind Deine Datensätze die Dich interessieren, positiv in der ersten Abfrage, negativ in dr zweiten Abfrage
gebe nun im Feld Namen deiner zweiten Abfrage als kriterium "ist null" ein,
und weil hier nichts drinsteht kann Du die Anzeige dieses Feldes auch ausschalten
4. Schritt: Falls Du tatsächlich noch Namensdupllikate in Deiner Liste hast, mache auf Basis der 3. Abfrage eine 4. Abfrage, nämliche eine Gruppierungsabfrage mit dem griechischen großen S "Summen"
dan solltest Du, immer wenn Du die 4. Abfrage öffnest immer die Namen Deiner Zielgruppe sehen.
LG