Seite 1 von 1

2 verschiedene Kundendatendateien in eine zusammenführen

Verfasst: Mo, 27.05.2013 15:14
von wawiprob
Hallo,

ich habe zwei verschieden Kundendateien in Base. Beide möchte ich zu einer einzigen 'zusammenführen'. Es gibt auch eine (kleine) gemeinsame Schnittmenge (d.h. einzelne Kunden sind in beiden Dateien enthalten; sollen aber logischerweise nicht doppelt Post bekommen). Später möchte ich Adresskleber drucken.

Jetzt wusste ich nicht wie das 'Zusammenführen' geht und habe herausbekommen, dass das nur über den Umweg der Kopie in ein Calc-Tabelle geht. Ich hatte versucht ein Export-Dialog zu finden in dem man die Spalten zuordnen kann. Das gibt es aber anscheinend nicht.

Jetzt habe ich beide Dateien kopiert und in Calc eingefügt.

Die Spaltenkopfe sehen so aus:
Datei 1 Name Vorname Strasse Titel Nr. PLZ ORt Tel E-mail Bemerkung
Datei 2 Name Vorname Titel Strasse PLZ Ort Tel1 Ortsteil Tel2 email

Problem ist auch, dass in Datei 1 die Strasse und Strassen Nr. in zwei verschiedenen Spalten sind und in Datei 2 ist die Hausnummer im Feld (selbe Spalte) direkt hinter die Strasse geschrieben.

Wie bekomme ich das hin?



PS:
In Calc gibt es auch eine Formel mit der man die letzten (oder ersten) 2 oder 3 Stellen eines Feldes trennen und in eine andere Spalte eintragen lassen kann (habe aber vergessen welche). Weiss das jemand? Und, ist es besser von der einen Datei die Hausnummern in eine extra Spalte zu separieren oder von der anderen die Hausnummer zur Strasse hinzufügen? Hat jemand die Formel für solche Sortierungen?

Die Verkettenfunktion habe ich gefunden, aber wie bekomme ich eine Leerstelle zwischen Strasse und Hausnummer???

Re: 2 verschiedene Kundendatendateien in eine zusammenführen

Verfasst: Mo, 27.05.2013 17:13
von RobertG
Hallo wawiprob,

jeder nimmt natürlich den Weg, der ihm am vertrautesten ist. Ich würde das so lösen, dass ich eine Tabelle in die andere Datenbank hinein kopieren würde. Erst danach ginge dann das Erstellen der neuen gemeinsamen Tabelle los.
Willst Du Straße und Nummer zusammen führen, so geht das in der Abfrage über
SELECT "Strasse"||' '||"Nr." AS "Strasse" FROM "Tabelle"
Zusammengeschriebene Straßen und Nummern kannst Du nicht mehr gefahrlos auseinander dividieren. Das Schneiden einen Strings nach Leerstellen kann hier leicht fehl gehen, denn sowohl die "Strasse" als auch die "Nr." können Leerstellen enthalten. Da müsste auf jeden Fall nachgebessert werden.
Die Reihenfolge der Felder kannst Du beim Import festlegen. Es kommt nur darauf an, dass die Feldtypen zueinander passen. Sollte Deine DB also bisher wirklich nur aus einer Tabelle bestehen, so kannst Du die zweite Tabelle einfach an die erste über ein "Einfügen" im Tabellencontainer anhängen.
Danach gilt es noch die Duplikate zu finden:
SELECT "a".* FROM "Tabelle" AS "a" WHERE (SELECT COUNT( "ID" ) FROM "Tabelle" WHERE "Name" = "a"."Name") > 1
Dies zeigt Dir alle Namen an, die mehrfach vorkommen.

Gruß

Robert

Re: 2 verschiedene Kundendatendateien in eine zusammenführen

Verfasst: Mo, 27.05.2013 17:23
von lorbass
Viele Fragen auf einmal und das dann noch gemischt für Base und Calc. Nicht schön!
wawiprob hat geschrieben:jetzt wusste ich nicht wie das 'Zusammenführen' geht und habe herausbekommen, dass das nur über den Umweg der Kopie in ein Calc-Tabelle geht.
Wo steht denn das? Wenn du zwei strukturell vergleichbare Datenbank-Tabellen hast, kannst du sie mit einem normalen INSERT mit Subquery aus einer Tabelle selektieren und in die andere einfügen, also etwa

Code: Alles auswählen

INSERT INTO <target table> (<insert column list>) SELECT <select list> FROM <table name>
<insert column list> und <select list> müssen dabei natürlich „zusammenpassen“. Möglicherweise lassen sich dabei auch bereits Straßenname und Hausnummer in der <select list> separieren. Kann das jemand bestätigen / beschreiben? — Duplikate sollten dabei im Rahmen des normalen Fehler-Handlings abgefangen werden

Details:
  INSERT statement
  SELECT statement

Wenn die Separation von Straßenname und Hausnummer in der Subquery erfolgen kann, war's das dann auch schon – ohne Calc. Trotzdem zu deinen Calc-Fragen:
wawiprob hat geschrieben:die letzten (oder ersten) 2 oder 3 Stellen eines Feldes trennen und in eine andere Spalte eintragen lassen
Meinst du den Menüpunkt Daten → Text in Spalten…? Das funktioniert aber nur von links nach rechts, also für die ersten 2 oder 3 Zeichen, nicht für die letzten.
wawiprob hat geschrieben:ist es besser von der einen Datei die Hausnummern in eine extra Spalte zu separieren oder von der anderen die Hausnummer zur Strasse hinzufügen?
Zwei separate Informationen sind immer flexibler eine verkettete.
wawiprob hat geschrieben:Hat jemand die Formel für solche Sortierungen?
Welche Sortierung meinst du hier?
wawiprob hat geschrieben:wie bekomme ich eine Leerstelle zwischen Strasse und Hausnummer?
Entweder
  =D3&"␣"&E2
oder
  =VERKETTEN(D3;"␣";E2)

Gruß
lorbass