Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: BotschafterSarek am August 27, 2026, 08:20:37

Titel: Datensätze finden, wo ein Feld gleich und eines von zwei anderen unterschiedlich
Beitrag von: BotschafterSarek am August 27, 2026, 08:20:37
Hallo zusammen,

ich habe folgende Tabelle:

https://ibb.co/fGxCdssY

Ich möchte nun alle Datensätze finden, bei denen

In dem obigen Screenshot möchte ich also einen Hinweis, dass unter der ElternID 101V einmal ein Simon Schulz und einmal ein Andreas Meier auftaucht. Es braucht keinen Hinweis, dass auch die ElternID 100V doppelt vorkommt, weil dort Vor- und Nachname identisch sind.

Ich hätte die Datenbank gerne angehängt, aber die Endung .accdb ist unzulässig. Solle man vielleicht mal ergänzen, MDB ist doch schon lange nicht mehr gebräuchlich  8)

Danke im Voraus.
Sarek 🖖
Titel: Re: Datensätze finden, wo ein Feld gleich und eines von zwei anderen unterschiedlich
Beitrag von: Knobbi38 am August 27, 2026, 09:21:55
Hallo Sarek,

du kannst eine DB mit ein paar relevanten Demo-Daten als ZIP-Datei hochladen. Datenbanken von ext. Filehostern
lade ich i.d.R. nicht mehr herunter und passen nicht so recht zu einem Forum.

Eine ähnliche Anfrage gab es mal hier:
https://www.office-hilfe.com/support/threads/dublikatsuche-in-kombination.60328/ (https://www.office-hilfe.com/support/threads/dublikatsuche-in-kombination.60328/)
Vielleicht wäre das ein erster Ansatz.

Knobbi38
Titel: Re: Datensätze finden, wo ein Feld gleich und eines von zwei anderen unterschiedlich
Beitrag von: BotschafterSarek am August 27, 2026, 09:30:31
Zitat von: Knobbi38 am August 27, 2026, 09:21:55du kannst eine DB mit ein paar relevanten Demo-Daten als ZIP-Datei hochladen.

Auf die Idee kam ich natürlich nicht, ich habe es jetzt hochgeladen. Es geht um die Tabelle "Elternimport", den Screenshot habe ich auch mit hochgeladen ...

Das andere hilft mir leider nicht, da ich SQL-Befehle nur abtippen kann, aber sie nicht ausreichend verstehe, um sie anzupassen.
Titel: Re: Datensätze finden, wo ein Feld gleich und eines von zwei anderen unterschiedlich
Beitrag von: Knobbi38 am August 27, 2026, 10:14:22
Ich gehe mal davon aus, dass das jetzt nur eine Demo-DB ist, ansonsten gäbe es dazu einiges zu sagen, insbesondere was die Namenskonventionen, Felddatentypen, Beziehungen usw. betrifft.

ZitatDas andere hilft mir leider nicht, da ich SQL-Befehle nur abtippen kann, aber sie nicht ausreichend verstehe, um sie anzupassen.
Das bloße Abtippen einer Lösung wird dich aber auch nicht weiter bringen. Du solltest schon versuchen zu verstehen, was da eigentlich gemacht wird.

Wie dem auch sei, den Sinn einer solchen Abfrage kann ich nicht erkennen, aber hier ein möglicher Lösungsansatz nach deinen Vorgaben:
SELECT a.ElternID, a.[Interne ID], a.Vorname, a.Nachname
FROM Elternimport AS a
  INNER JOIN Elternimport AS b
   ON a.ElternID = b.ElternID
WHERE a.Vorname <> b.Vorname OR a.Nachname <> b.Nachname;

Knobbi38
Titel: Re: Datensätze finden, wo ein Feld gleich und eines von zwei anderen unterschiedlich
Beitrag von: PhilS am August 27, 2026, 11:28:41
Zitat von: Knobbi38 am August 27, 2026, 10:14:22hier ein möglicher Lösungsansatz
Ohne die Beispiel-DB angesehen zu haben: Es wäre bestimmt eine gute Idee Null-Werte in den Namensfeldern zu behandeln.


SELECT a.ElternID, a.[Interne ID], a.Vorname, a.Nachname
FROM Elternimport AS a
  INNER JOIN Elternimport AS b
   ON a.ElternID = b.ElternID
WHERE (a.Vorname <> b.Vorname
       OR (a.Vorname IS NULL AND b.Vorname IS NOT NULL)
       OR (a.Vorname IS NOT NULL AND b.Vorname IS NULL) )
OR (a.Nachname ... analog zu Vorname.
Titel: Re: Datensätze finden, wo ein Feld gleich und eines von zwei anderen unterschiedlich
Beitrag von: Knobbi38 am August 27, 2026, 11:41:51
@PhilS

Grundsätzlich gebe ich dir recht, aber da das Datenmodell noch nicht fertig ist und es keine weiteren Hintergrundinformationen gibt, kann man das m.M. nach noch ignorieren.

Gruß
Knobbi38

Titel: Re: Datensätze finden, wo ein Feld gleich und eines von zwei anderen unterschiedlich
Beitrag von: BotschafterSarek am August 27, 2026, 13:38:59
Zitat von: Knobbi38 am August 27, 2026, 10:14:22Wie dem auch sei, den Sinn einer solchen Abfrage kann ich nicht erkennen, aber hier ein möglicher Lösungsansatz nach deinen Vorgaben

Vielen Dank, das tut genau das, was es soll.

Der Hintergrund ist folgender:

Wir müssen die Eltern unserer Schüler aus unserer Schulverwaltung in unser Schulkommunikationssystem importieren. Leider haben die Eltern keine eindeutige ID. Der Name kann auch nicht herangezogen werden, da der sich (z.B. durch Heirat/Scheidung) auch mal ändert.

Es gibt aber eine Familiennummer zu jedem Kind. Mein Ansatz ist, diese Familiennummer mit einem angehängten M für Mutter oder V für Vater als Eltern-ID zu verwenden.

Nun gibt es leider auch Patchworkfamilien, wo Kinder die gleiche Mutter, aber unterschiedliche Väter haben. Hier versagt unsere Schulverwaltung und gibt allen Kindern dieser Patchworkfamilie die gleiche Familiennummer. Dadurch kann es vorkommen, dass eine ElternID zwei verschiedenen Personen zugewiesen ist, was nicht sein darf- Diese wenigen Ausnahmen wollte ich mit der Abfrage abfangen und manuell anpassen.

Titel: Re: Datensätze finden, wo ein Feld gleich und eines von zwei anderen unterschiedlich
Beitrag von: Knobbi38 am August 27, 2026, 15:33:08
Wie ich schon vermutet habe, ist das Datenmodell falsch. Eine ID darf keine sprechenden Daten enthalten, wie z.B. M oder V und auch keine Gruppierungen. Mutter oder Vater wäre sowieso falsch, weil es auch noch andere Konstellationen gegeben kann. Jede Person bekommt eine ID und jedes Schulkind ebenfalls. Diese werden dann per m:n Tabelle zugeordnet und das war es im Prinzip schon. Damit kannst du alles abbilden. 

Ein erster Ansatz:

================================================================================
DATENMODELL: SCHULVERWALTUNG
================================================================================

1. TABELLE: tbl_Schueler
--------------------------------------------------------------------------------
Feldname            | Datentyp      | Index / Key        | Beschreibung
--------------------------------------------------------------------------------
SchuelerID          | Autowert      | PK (Primary Key)   | Eindeutige interne Schüler-ID
Vorname             | Text (50)     | -                  | Vorname des Kindes
Nachname            | Text (50)     | -                  | Nachname des Kindes
Familiennummer_SV   | Text (30)     | Index (Dupl. ok)   | Nummer aus Schulverwaltung
--------------------------------------------------------------------------------

2. TABELLE: tbl_Erziehungsberechtigte
--------------------------------------------------------------------------------
Feldname            | Datentyp      | Index / Key        | Beschreibung
--------------------------------------------------------------------------------
BerechtigterID      | Autowert      | PK (Primary Key)   | Die finale ID für das Export-System
Vorname             | Text (50)     | -                  | Vorname (leer lassen bei Ämtern)
Nachname            | Text (100)    | -                  | Nachname ODER Name der Institution
IstInstitution      | Ja/Nein       | -                  | Ja = Jugendamt/Heim, Nein = Person
E_Mail              | Text (100)    | Eindeutig (Kein D) | Login für das Kommunikationssystem
--------------------------------------------------------------------------------

3. TABELLE: tbl_Schueler_Berechtigte
--------------------------------------------------------------------------------
Feldname            | Datentyp      | Index / Key        | Beschreibung
--------------------------------------------------------------------------------
SchuelerBerechtID   | Autowert      | PK (Primary Key)   | Interne ID der Verknüpfung
SchuelerID_FS       | Long Integer  | FK (Foreign Key)   | Verweist auf tbl_Schueler(SchuelerID)
BerechtigterID_FS   | Long Integer  | FK (Foreign Key)   | Verweist auf tbl_Erziehungsberechtigte
Beziehung           | Text (50)     | -                  | z. B. Mutter, Großvater, Jugendamt, Vormund
================================================================================


und die SQL-DDL Statements zum anlegen:
-- 1. Tabelle: Schueler
CREATE TABLE tbl_Schueler (
    SchuelerID COUNTER CONSTRAINT PK_Schueler PRIMARY KEY,
    Vorname TEXT(50),
    Nachname TEXT(50),
    Familiennummer_SV TEXT(30)
);

-- 2. Tabelle: Erziehungsberechtigte (Personen & Institutionen)
CREATE TABLE tbl_Erziehungsberechtigte (
    BerechtigterID COUNTER CONSTRAINT PK_Erziehungsberechtigte PRIMARY KEY,
    Vorname TEXT(50),
    Nachname TEXT(100),
    IstInstitution BIT DEFAULT 0,
    E_Mail TEXT(100)
);

-- 3. Zwischentabelle: Flexibler Beziehungsstatus
CREATE TABLE tbl_Schueler_Berechtigte (
    SchuelerBerechtID COUNTER CONSTRAINT PK_SchuelerBerechtigte PRIMARY KEY,
    SchuelerID_FS INT CONSTRAINT FK_Schueler REFERENCES tbl_Schueler(SchuelerID) ON UPDATE CASCADE ON DELETE CASCADE,
    BerechtigterID_FS INT CONSTRAINT FK_Berechtigter REFERENCES tbl_Erziehungsberechtigte(BerechtigterID) ON UPDATE CASCADE ON DELETE CASCADE,
    Beziehung TEXT(50)
);

Das Einfügen eine Geschlechtsmerkmals mit einer passenden Lockuptabelle überlasse ich jetzt deiner Phantasie.  ;D


... aber vielleicht hilft das schon weiter  ;)

Knobbi38
Titel: Re: Datensätze finden, wo ein Feld gleich und eines von zwei anderen unterschiedlich
Beitrag von: BotschafterSarek am August 28, 2026, 04:57:25
Zitat von: Knobbi38 am August 27, 2026, 15:33:08Wie ich schon vermutet habe, ist das Datenmodell falsch. Eine ID darf keine sprechenden Daten enthalten, wie z.B. M oder V und auch keine Gruppierungen. Mutter oder Vater wäre sowieso falsch, weil es auch noch andere Konstellationen gegeben kann. Jede Person bekommt eine ID und jedes Schulkind ebenfalls. Diese werden dann per m:n Tabelle zugeordnet und das war es im Prinzip schon. Damit kannst du alles abbilden. 

Ich muss aber mit dem arbeiten, was unsere Schulverwaltung zur Verfügung stellt, damit ich im nächsten Jahr bei Verwendung der gleichen Basisliste auch das gleiche Ergebnis bekomme, damit also Max Mustermann im nächsten Jahr die gleiche ID bekommt wie in diesem Jahr. Und dazu habe ich nun mal nur die Familiennummer.

Und als Naturwissenschaftler bin ich da sehr klassisch. Ein Kind hat, ungeachtet jeglicher "anderer Konstellationen", die rechtlich möglich sind, eine Mutter und einen Vater. Irgendwie muss es ja entstehen - und Klonkinder sind zum Glück noch nicht erlaubt.