Neuigkeiten:

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

Mobiles Hauptmenü

Abfrage: Filtern von Kunden aus mehreren Tabellen

Begonnen von Coltrane1970, Oktober 26, 2024, 11:42:40

⏪ vorheriges - nächstes ⏩

Coltrane1970

Hallo Community,

ich habe folgendes Problem beim Nutzen einer Access-Datenbank.

Datenstruktur:

Sie dürfen in diesem Board keine Dateianhänge sehen.

In der Tabelle "Adressliste" befinden sich alle verfügbaren "Kunden" (Schülerinnen und Schüler) und sind eindeutig über ihre ID identifiziert. Wie der Name der Tabelle besagt, sind darin auch die Adressdaten der Kunden hinterlegt.

In Bezug auf die Tabelle Tabelle "Besondere Leistungen" können Kunden der Adressliste hier mehrfach vorkommen, da sie z.B. an mehreren sportlichen Wettbewerben teilgenommen haben. In der Tabelle "Bestenliste" kommen Kunden der Adressliste nur einmal vor. Es können Kunden sein, die auch in der Tabelle "Besondere Leistungen" gelistet sind. Es befinden sich dort aber auch Kunden, die in der Tabelle "Besondere Leistungen" nicht vorkommen.

Kunden, die in einer der beiden Tabellen "Besondere Leistungen" oder "Bestenliste" aufgeführt sind, sollen in einer Einladung angeschrieben werden.

Um die Kunden bei der Einladung nicht mehrfach anzuschreiben, soll eine Abfrage erstellt werden, in der die anzuschreibenden Kunden nur einmal mit den entsprechenden Adressdaten auftreten.

Die folgende Abfrage zeigt mir aber nurm die Kunden, die in beiden Tabellen auftrefen.

Sie dürfen in diesem Board keine Dateianhänge sehen.

Es müsste hier so etwas wie eine inklusive "ODER-Verknüpfung" geben, die einen Datensatz aus "Adressliste" nur dann ausgibt, wenn die ID des Kunden in der Tabelle "Bestenliste" oder "Besondere Leistungen" vorkommt.

Wie kann ich dieses Problem lösen? 

Vielen Dank für Eure Unterstützung

MzKlMu

#1
Hallo,
erst mal grundsätzliche Anmerkungen:
- nenn ID Felder nicht einfach ID, bei Abfragen etc. blickst du nicht mehr durch welche ID zu welcher Tabelle gehört
- es ist grundsätzlich referentielle Integrität einzustellen. Wenn das nicht geht hast Du Fehler in den Daten und/oder in der Struktu
- Leer und Sonderzeichen sind in Feldnamen unbedingt zu vermeiden.
"Manschaft - oder Einzelwettbewerb?" ist eine Katastrophe. Das Fragezeichen ist besonders problematisch. Auch Klammern sind zu unterlassen. Wenn Du mal einen Ausdruck (Formel) hast mit Klammern, kannst Du nicht mehr erkennen was zur Formel gehört und was zum Feldnamen.

Zur Struktur:
Wer in der Bestenliste ist, ist der auch in der Tabelle mit den besonderen Leistungen?
Nachname, Vorname, Klasse gehört nur in die Adressenliste, in den anderen Tabellen reicht die ID.
Deine Ausführungen sind verwirrend, Du sprichst von Kunden, hast aber Adressen. Dann hast Du auch Lehrkräfte was auf Schule schließen lässt, da passen aber Kunden nicht dazu.
Gruß Klaus


MzKlMu

Hallo,
und sinngemäß die gleichen Hinweise.  :)

@Coltrane1970
Crossposting ist unerwünscht. Hinweis ist sogar in den Forenregeln zu finden.
Gruß Klaus

Coltrane1970

Zitat von: MzKlMu am Oktober 26, 2024, 12:23:44Hallo,
erst mal grundsätzliche Anmerkungen
- nenn ID Felder nicht einfach ID, bei Abfragen etc. blickst du nicht mehr durch welche ID zu welcher Tabelle gehört
- es ist grundsätzlich referentielle Integrität einzustellen. Wenn das nicht geht hast Du Fehler in den Daten und/oder in der Struktu
- Leer und Sonderzeichen sind in Feldnamen unbedingt zu vermeiden.
"Manschaft - oder Einzelwettbewerb?" ist eine Katastrophe. Das Fragezeichen ist besonders problematisch. Auch Klammern sind zu unterlassen. Wenn Du mal einen Ausdruck (Formel) hast mit Klammern, kannst Du nicht mehr erkennen was zur Formel gehört und was zum Feldnamen.

Vielen Dank für die Hinweise! Die Probleme habe ich korrigiert. Die referentielle Integrität sollte gewährleistet sein, da die ID - jetzt in allen Tabellen "Schüler-ID" - auf den selben Schüler verweist.


Zitat von: MzKlMu am Oktober 26, 2024, 12:23:44Zur Struktur:
Wer in der Bestenliste ist, ist der auch in der Tabelle mit den besonderen Leistungen?

Bestenliste und Besondere Leistungen sind voneinander getrennt. Schüler der Bestenliste können auch in der Tabelle der besonderen Leistungen vorkommen.

In der Tabelle Besondere Leistungen können Schüler auch mehrfach vorkommen, da sie sich bei verschiedenen Wettbewerben beteiligt haben.

Im Abfragergebnis brauche ich jeden Schüler, der in der Bestenliste und/oder der Liste der Besonderen Leistungen vorkommt, genau ein mal, um ihn zur Feier einladen zu können.

Zitat von: MzKlMu am Oktober 26, 2024, 12:23:44Nachname, Vorname, Klasse gehört nur in die Adressenliste, in den anderen Tabellen reicht die ID.

Das ist dem geschuldet, dass die Tabellen ursprüngliche Herkunft haben. Name und Vorname muss ich insbesondere bei den besonderen Leistungen drin lassen, da diese Daten händisch von Lehrkräften eingegeben wurden. Wenn sie sich bei der Schüler-ID vertippt haben, habe ich keine Möglichkeit mehr zu kontrollieren, wo der Fehler liegt. Die Tabelle "Adressliste" entstammt der Verwaltungsdatenbank. Von daher werde ich Namen und Vornamen immer von dort nehmen.

P.S. "Kunden" hatte ich nur verwendet, um nicht immer von Schülerinnen und Schülern zu sprechen. War ungeschickt. Es handelt sich natürlich um eine Schule.


Coltrane1970

Zitat von: MzKlMu am Oktober 26, 2024, 13:49:56Hallo,
und sinngemäß die gleichen Hinweise.  :)

@Coltrane1970
Crossposting ist unerwünscht. Hinweis ist sogar in den Forenregeln zu finden.

Entschuldigung für das Crossposting. Die Angelegenheit ist recht dringend, da die Einladungen nächste Woche raus müssen. Da es in beiden Foren mein 1. Posting war, konnte ich nicht abschätzen, welche der Foren stärker frequentiert sind. Kommt nicht wieder vor!

MzKlMu

Gruß Klaus

Coltrane1970

Hallo,
hier das neue Beziehungsbild:

Sie dürfen in diesem Board keine Dateianhänge sehen.

 

Knobbi38

Hallo Coltrane1970,

ZitatDie Angelegenheit ist recht dringend, da die Einladungen nächste Woche raus müssen.
Warum sollte dein Anliegen bevorzugt behandelt werden? Siehe dazu mal hier: https://www.excel-ist-sexy.de/eilt-wichtig/

ZitatDa es in beiden Foren mein 1. Posting war, konnte ich nicht abschätzen, welche der Foren stärker frequentiert sind.
Im echten Leben bestellst du doch auch nicht zwei Taxis in der Hoffnung das eines schneller ist als das andere. Kannst dir ungefähr vorstellen, was die Taxifahrer davon halten, oder?
Deine Not kann ich nachvollziehen, aber verlinkt hast die Foren immer noch nicht - das ist das mindeste, was man erwarten darf.


MzKlMu

Hallo,
Besten-Nr und Ehrung-Nr enthalten noch Sonderzeichen (-). Auch im Tabellennamen (Besondere Leistungen) ist noch ein Leerzeichen.
Wieso nennst Du das PS Feld "Ehrung-Nr" wenn die Tabelle "Besondere Leistungen" heist ? Das ist irritierend.

Vorname, Nachname und Klasse darf nur in die Tabelle "Adressenliste" in den anderen Tabellen müssen die raus.
Du läufst sonst Gefahr, dass die Namen nicht zur ID passen. Die Daten musst Du prüfen und dann die Felder entfernen. Die Namensauswahl erfolgt dann im Formular mit einem Kombinationsfeld, dann kann es keine falsche ID mehr eingegeben werden.

Zur Bestenliste noch eine Frage:
- Sind in der Bestenliste nur Schüler die auch bei den besonderen Leistungen sind ?
Oder anders gefragt:
- Wird die Bestenliste aus den besonderen Leistungen ermittelt ?
Gruß Klaus

Knobbi38

Hallo Coltrane,

du suchst doch die DS, welche entweder in der einen "oder" der anderen Tabelle enthalten sind. Vielleicht hilft es dir vom Verständnis her, wenn du die Logik negierst, z.B nach diesem Muster:
SELECT DISTINCT c.ID, c.Feld1
FROM Table1 as c
LEFT JOIN Table2 AS a ON c.ID = a.FK_ID
LEFT JOIN Table3 AS b ON c.ID = b.FK_ID
WHERE Not (a.FK_ID is NULL AND b.FK_ID is NULL)