Calc Tabelle in mehrere Base Tabellen automatisch aufteilen

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

Thomasessen82
Beiträge: 4
Registriert: Sa, 21.03.2015 10:36

Calc Tabelle in mehrere Base Tabellen automatisch aufteilen

Beitrag von Thomasessen82 »

Hallo liebes Forum:)

Ich bin neu hier und beschäftige mich gerade mit BASE.

Habe eine Frage wo ich nach googlen usw keine Antwort gefunden habe.

Ich habe eine große Masterdatei in Calc und möchte diese als Grundlage für eine Datenbank in Base nutzen.

Im Zuge der Normalisierung werde ich Plz´s und Ort usw. in seperate Tabellen nehmen.

Diese Daten sind alle schon in der Masterdatei enhalten.

Nun Frage ich mich ob man die Masterdatei so aufteilen kann das ich bei einem Adressensatz direkt nur die Namen in eine Tabelle importiere und PLZ Ort in eine seperate Tabelle importiere usw.. Wenn es importiert ist sollte dann direkt eine "verknüpfung" der Tabellen vorhanden sein.

Also das beim Namen Peter Müller direkt die PLZID 24 steht.

Ist sowas möglich ??

Gruß

Thomas
RobertG
********
Beiträge: 2033
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Calc Tabelle in mehrere Base Tabellen automatisch aufteilen

Beitrag von RobertG »

Hallo Thomas,

ich würde den folgenden Weg gehen:
1. Komplette Tabelle der Masterdatei in Base importieren.
2. Die Felder PLZ und Ort daraus mit einer Abfrage auslesen und als separate PLZOrt-Tabelle abspeichern (dabei Autowert zum Erstellen der ID einstellen).

Code: Alles auswählen

SELECT DISTINCT "PLZ", "Ort" FROM "Importtabelle"
3. Der Importtabelle ein Feld "PLZID" hinzufügen.
4. Unter Extras → SQL ein Update für diese Tabelle ausführen:

Code: Alles auswählen

UPDATE "Importtabelle" AS "a" SET "a"."PLZID" = (SELECT "ID" FROM "PLZOrt" WHERE "PLZ"||"Ort" = "a"."PLZ"||"a"."Ort")
5. Die Importtabelle zum Bearbeiten öffnen und die Felder "PLZ" und "Ort" löschen, die Änderung speichern und anschließend die Tabelle wieder schließen.

Gruß

Robert
Thomasessen82
Beiträge: 4
Registriert: Sa, 21.03.2015 10:36

Re: Calc Tabelle in mehrere Base Tabellen automatisch aufteilen

Beitrag von Thomasessen82 »

Danke :)

Code: Alles auswählen

UPDATE "Importtabelle" AS "a" SET "a"."PLZID" = (SELECT "ID" FROM "PLZOrt" WHERE "PLZ"||"Ort" = "a"."PLZ"||"a"."Ort")
hat nicht funktioniert.

aber

Code: Alles auswählen

UPDATE "Importtabelle" AS "a" SET "a"."PLZID" = (SELECT MAX ("ID") FROM "PLZOrt" WHERE "PLZ"||"Ort" = "a"."PLZ"||"a"."Ort")
dann ja :)

Vielen Dank
RobertG
********
Beiträge: 2033
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Calc Tabelle in mehrere Base Tabellen automatisch aufteilen

Beitrag von RobertG »

Hallo Thomas,

wenn nur

Code: Alles auswählen

UPDATE "Importtabelle" AS "a" SET "a"."PLZID" = (SELECT MAX ("ID") FROM "PLZOrt" WHERE "PLZ"||"Ort" = "a"."PLZ"||"a"."Ort")
funktioniert, dann ist an der Tabelle "PLZOrt" etwas faul. Da müssen dann Duplikate drin sein. Das dürfte allerdings nicht vorkommen, wenn Du mit

Code: Alles auswählen

SELECT DISTINCT "PLZ", "Ort" FROM "Importtabelle"
die Tabelle erstellt hast dürfte so etwas nicht passieren, denn der Zusatz DISTINCT schließt aus, dass es von der Kombination "PLZ" und "Ort" Duplikate gibt.

Ich würde dringedst noch einmal die Tabelle "PLZOrt" auf Duplikate untersuchen.

Code: Alles auswählen

SELECT COUNT("PLZ"||"Ort"), "PLZ"||"Ort" FROM "PLZOrt" GROUP BY "PLZ"||"Ort"
dürfte nirgendwo größer als 1 sein.

Gruß

Robert
Thomasessen82
Beiträge: 4
Registriert: Sa, 21.03.2015 10:36

Re: Calc Tabelle in mehrere Base Tabellen automatisch aufteilen

Beitrag von Thomasessen82 »

Hallo,

Ja hattest vollkommen recht es gab doppelte Einträge.
Hab ich nicht drauf geachtet.

Wenn ich die Abfrage mit SQL mache kann ich das Ergebniss aber nicht in eine CALC Tabelle kopieren um es dann wieder zu Importieren. Oder hab ich jetzt einen Denkfehler. Hab bisher immer mit Access gearbeitet aber Arbeitgeber bedingt beschäftige ich mich jetzt mit Base.

Gruß

Thomas

---------------------------

Für blöde gehts ganz einfach :)

Vielen Dank
RobertG
********
Beiträge: 2033
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Calc Tabelle in mehrere Base Tabellen automatisch aufteilen

Beitrag von RobertG »

Hallo Thomas,

ich nehme an, dass wir uns da missverstanden haben. Wenn ich von Tabellen schreibe, dann ist das für mich zuerst einmal eine Tabelle in Base.
Bei diesem Schritt
2. Die Felder PLZ und Ort daraus mit einer Abfrage auslesen und als separate PLZOrt-Tabelle abspeichern (dabei Autowert zum Erstellen der ID einstellen).mit dieser Abfragedurch die Abfrage

Code: Alles auswählen

SELECT DISTINCT "PLZ", "Ort" FROM "Importtabelle"
eine Tabelle erstellt, indem Du die Abfrage speicherst, mit der rechten Maustaste über die Abfrage, kopieren. Dann in den Tabellencontainer gehen und rechte Maustaste - Einfügen. Dabei dann den Primärschlüssel erstellen lassen.
Die Abfrage schließt durch DISTINCT doppelte Werte aus.

Gruß

Robert
Thomasessen82
Beiträge: 4
Registriert: Sa, 21.03.2015 10:36

Re: Calc Tabelle in mehrere Base Tabellen automatisch aufteilen

Beitrag von Thomasessen82 »

Hallo Robert,

Vielen Dank.

Hatte diese "Fehler" meinerseits erkannt und behoben :)

Jetzt Funktioniert Alles SUPER!!

Vielen Dank
Antworten