6.5k Aufrufe
Gefragt in Datenbanken von
Hi,

ich nutze Access 2002 und möchte 2 Tabellen mit einander vergleichen und das Ergebnis am besten in einer 3. ausgeben. Ich möchte alle Datensätze aufgelistet haben die in Tabelle 1 aber nicht in Tabelle 2 vorhanden sind. Tabelle 1 enthält mehr Dateien als Tabelle 2 und es handelt sich um ca 20.000 Datensätze wobei die einzelnen Datensätze aus beiden Tabellen gleich aufgebaut sind. Als Primärschlüssel würde sich Straßenname mit Hausnummer anbieten, da diese beiden Informationen bereits so in den Tabellen vorliegen, also als "Berliner Str. 5a" zBsp.


Außerdem suche ich noch nach einer Möglichkeit doppelte Datensätze mit gleicher Information zu löschen. Wenn diese Straße+Hausnr. bereits einmal genannt wurde, lösche alle weiteren Datensätze die ebenfalls diese Straße+Hausnr. enthalten.


vielen Dank schoneinmal für eure Antworten ^_^

3 Antworten

0 Punkte
Beantwortet von
1.
select * from Tabelle1
where not exists (select * from Tabelle2)
0 Punkte
Beantwortet von rahi Experte (1.5k Punkte)
Hallo,

Marvins Ansatz geht in die richtige Richtung, ist aber zu kurz gedacht und funktioniert so nicht. Hier meine Lösung:
SELECT *
FROM strtab1
WHERE (strtab1.ID In
(Select min(id) from strtab1 t1
where not exists (select * from strtab2 t2 where t1.strasse = t2.strasse)
group by t1.strasse
)
);
Was mache ich? Zunächst suche ich die kleinsten ID aus meiner Tabelle strtab1 zu dessen Strassennamen kein Gegenstück in der Tabelle strtab2 existiert. Diese Ids sind das IN-Kriterium auf die Haupttabelle strtab1. Somit habe ich doppelte Einträge direkt ausgefiltert. Willst du das Ganze direkt in eine neue Tabelle haben, dann setze hinter "SELECT * " einfach noch "INTO strtab3".

Gruß
Ralf
0 Punkte
Beantwortet von marie Experte (2k Punkte)
Also ganz einfach ist es in deinem Fall den Assistenten zu benutzen. Dort werden beide Abfragen angeboten, die Du haben möchtest.
Abfrage, Neu, Abfrage-Assistent zur Duplikatsuche und entsprechend Abfrage-Assistent zur Inkonsistenzsuche. Sehr einfach und bei den Duplikaten kannst Du dann die Duplikate mit einer Löschabfrage entfernen.

Gruß marie
...