Datensätze aus zwei Tabellen automatisch 1:N verbinden
Ich bin heute neu hier eingestiegen und suche den besten Weg die Relation zwischen zwei importierten Tabellen "Kunde" und "Kontakt"
Jeder Kunde hat eine eindeutige KundenID
Alle Kontakte, die im alten System mit einem Kunden verbunden waren, haben den entsprechenden Wert in der Tabelle Kontakt.KundenID
Ich habe eine 1:N Relation von Kunde zu Kontakt eingerichtet.
In beiden Tabellen ist das Feld: Kunde-ID
D.h. ich möchte für jeden Kunden in Kontakt alle Datensätze selektieren, die die gleiche Kunde-ID haben und diese Kontakte mit dem Kunden verbinden.
Name der Tabellen
- Kunde
- Kontakt
Name des Feldes
- Kunde-ID
Die manuelle Verknüpfung funkioniert bestens. Aber für über 900 Kunden/Firmen und 1.800 Kontake ist das manuell natürlich aufwändig.
Und ich habe noch viele weitere Tabellen, wie z.B. Aufgaben, Abschlüsse, Angebote, Aufträge, Rechnungen etc. im alten System, für Dich die gleiche Übung vor mir habe.
9 Antworten
-
Hallo Bernd,
vorausgesetzt, die Verknüpfung zur Tabelle 'Kunde' heißt genau so in der Tabelle 'Kontakt' dann könntest Du in der Konsole mit folgendem Code alle Verknüpfungen herstellen:
for i in select Kontakt where 'Kunde-ID' do i.Kunde := first(select Kunde where 'Kunde-ID' = i.'Kunde-ID') end
-
Hallo Bernd,
es gibt Möglichkeiten die Datensätze bereits beim Import über die Schlüssel-Definition zu verbinden. Für Deinen Fall, wenn die Daten bereits importiert sind kannst du das aber mit einer Schleife über die Console machen. Ab Besten du iterierst durch die Kontakte, welche eine Kunden-ID haben:let allCustomers := select Kunde; for k in Kontakt where KundenID != null do k.Kunde := first(allCustomers[KundenID = k.KundenID]) end
-
Vielen Dank für Eure schnellen Antworten. Ich bin heute erst noch in Terminen. Sobald ich es ausprobiert habe, melde ich mich zurück.
Content aside
- Status Answered
- vor 2 JahrenZuletzt aktiv
- 9Antworten
- 103Ansichten
-
3
Folge bereits