🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

Datensätze zusammenführen ohne Duplikate zu erzeugen

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
Antworten
Helles58
Beiträge: 115
Registriert: Mo 17. Jul 2017, 19:51

Datensätze zusammenführen ohne Duplikate zu erzeugen

Beitrag von Helles58 » Do 27. Feb 2025, 14:23

Hallo zusammen,

wie bringt man die Daten von 2 Tabellen zusammen ohne dass Duplikate erzeugt werden?
In eine bestehende Adresstabelle sollen neue Datensätze aus einer Import-Tabelle hinzu gefügt werden
wobei es sein kann dass schon vorhandene Adressen auch in der Import-Tabelle enthalten sind.
Diese sollten dann natürlich nicht übertragen werden. Kriterium wäre dann z. Bsp. Firmenname und Postleitzahl.
Hat da jemand eine Idee?
Bin dankbar für jeden Tip.

Gruß Helles58

RobertG
* LO-Experte *
Beiträge: 2884
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Datensätze zusammenführen ohne Duplikate zu erzeugen

Beitrag von RobertG » Fr 28. Feb 2025, 09:09

Das kommt jetzt sehr darauf an, ob für Dich der Primärschlüssel eine Bedeutung hat.

Ich würde das ansonsten so machen:
Beide Tabellen sind in der Datenbank unter verschiedenen Namen, aber mit gleicher Feldreihenfolge.
Mit

Code: Alles auswählen

SELECT * FROM "Tabelle1" UNION SELECT * FROM "Tabelle2"
erhältst Du in direktem SQL eine Übersicht über alle Daten ohne Duplikate.
Aus dem Ergebnis würde ich eine neue Tabelle anlegen.

Jetzt kann es ja sein, dass die Datensätze irgendwo ein bisschen unterschiedlich sind. Du musst also in dem Ergebnis über

Code: Alles auswählen

SELECT COUNT("ID") AS "Anzahl", "Firmenname", "Postleitzahl" FROM "Tabelle3" GROUP BY "Firmenname", "Postleitzahl"
nachschauen, ob es da irgendwo einen Anzahl > 1 gibt (Sortieren in der GUI müsste gehen).
Sind das nur noch wenige, dann wäre das jetzt mit Handarbeit (Suchen nach den nicht ganz gleichen Datensätzen) erledigt. Ansonsten müsstest Du mit Unterabfragen weiter schauen.
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

Helles58
Beiträge: 115
Registriert: Mo 17. Jul 2017, 19:51

Re: Datensätze zusammenführen ohne Duplikate zu erzeugen

Beitrag von Helles58 » Fr 28. Feb 2025, 15:12

Hallo Robert,

danke für die Beantwortung.
Das bringt mich gleich zu den nächsten Fragen.
Da in den bestehenden DS der Tabelle1 auch noch verschiedene andere Einträge
sind die in der Tabelle2 nicht vorhanden sind, sollen diese DS natürlich erhalten bleiben.
Welche DS werden mit dem SQL Union-Befehl denn nun angezeigt. Die aus Tabelle1 oder Tabelle2?
Und wie bekomme ich aus dem Ergebnis eine neue Tabelle?
Könnte man auch die neuen DS einfach an die Tabelle anhängen und dann nach Duplikaten suchen und die DS mit der größeren ID wieder entfernen?


Gruß Helles58

RobertG
* LO-Experte *
Beiträge: 2884
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Datensätze zusammenführen ohne Duplikate zu erzeugen

Beitrag von RobertG » Fr 28. Feb 2025, 15:39

Natürlich kannst Du auch die neuen Datensätze einfach direkt in die alte Tabelle einlesen. Du musst ja nur beim Assistenten die Reihenfolge der Felder einstellen. Die anderen Felder werden dann schlicht NULL. Ich weiß ja nicht, wie viele Duplikate Du da hast.

Bei dem UNION-Befehl bekämst Du dann sowieso keine Duplikate raus, weil ja die bereits eingegebenen Datensätze schon mehr Felder mit vermutlich auch Inhalt haben. Da bringt das dann nichts.
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

Helles58
Beiträge: 115
Registriert: Mo 17. Jul 2017, 19:51

Re: Datensätze zusammenführen ohne Duplikate zu erzeugen

Beitrag von Helles58 » Sa 1. Mär 2025, 15:27

Danke Robert,

das einlesen der Daten ist ist kein Problem aber die Duplikate dann aussortieren und löschen.
Da bräuchte ich noch Hilfe.
Geht das alles mit SQL oder wird auch ein Makro dafür benötigt?

Gruß Helles58

RobertG
* LO-Experte *
Beiträge: 2884
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Datensätze zusammenführen ohne Duplikate zu erzeugen

Beitrag von RobertG » Sa 1. Mär 2025, 16:55

Das Finden der Duplikate zeigte doch die 2. Abfrage. Du zählst einfach die Anzahl der IDs, gruppiert nach den Werten für Firma und Postleitzahl:

Code: Alles auswählen

SELECT * FROM 
(SELECT COUNT("ID") AS "Anzahl", "Firmenname", "Postleitzahl" FROM "Tabelle" GROUP BY "Firmenname", "Postleitzahl") 
WHERE "Anzahl" > 1
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

Helles58
Beiträge: 115
Registriert: Mo 17. Jul 2017, 19:51

Re: Datensätze zusammenführen ohne Duplikate zu erzeugen

Beitrag von Helles58 » Sa 1. Mär 2025, 18:38

Danke Robert,

das probier ich aus.
Ich wünsche dir ein frohes Wochenende

Gruß Helles58


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten