🙏 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!🍀
>> 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
Datensätze zusammenführen ohne Duplikate zu erzeugen
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
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
Re: Datensätze zusammenführen ohne Duplikate zu erzeugen
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
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
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.
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"
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"
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
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
Re: Datensätze zusammenführen ohne Duplikate zu erzeugen
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
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
Re: Datensätze zusammenführen ohne Duplikate zu erzeugen
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.
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
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
Re: Datensätze zusammenführen ohne Duplikate zu erzeugen
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
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
Re: Datensätze zusammenführen ohne Duplikate zu erzeugen
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
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
Re: Datensätze zusammenführen ohne Duplikate zu erzeugen
Danke Robert,
das probier ich aus.
Ich wünsche dir ein frohes Wochenende
Gruß Helles58
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.