Zum Hauptinhalt springen
Weil einfach - produktiver ist

Der Daten Spezialist

Konvertieren Sie die Daten mühelos zwischen verschiedenen Formaten ohne Programmierkenntnisse dank Visual Designer. Effizient und super einfach.
Flowheater Chart

Zusammenführung aus mehreren Tabellen einer ODBC-Quelle

Mehr
3 Jahre 7 Monate her #4242 von Hinnerk
Moin.
Folgende Datenbank (firebird, Anbindung über ODBC) mit mehreren Tabellen ist vorhanden:
Tabelle "ADRESSEN" mit den Feldern: ID-NR, KundenNr, Name, Straße, PLZ, Ort
Tabelle "NOTIZEN" mit den Feldern: ID-NR, Datum, Kurzbeschreibung, Beschreibung
Tabelle "UMSATZ" mit den Feldern: ID-NR, R-Datum, Auftragsbeschreibung, Betrag, R-Datum

Hieraus soll eine nun eine Tabelle werden. Dabei ist ID-NR der Primary Key. Die Zeilen in Notizen und Umsatz werden über ID-NR jeweils den Kunden (Kunden-Nr.) zugeordnet.
Die neue Tabelle soll so aussehen:
KundenNr, Name, Straße, PLZ, Ort, Ursprungstabelle (NOTIZ oder UMSATZ), Datum, Kurzbeschreibung oder Auftragsbeschreibung, Beschreibung oder Betrag

Hab's leider nicht hinbekommen. Möchte mir jemand helfen?
Vielen Dank schon mal im Voraus.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
3 Jahre 7 Monate her #4243 von FlowHeater-Team
Hallo Hinnerk,

Ihre Beschreibung reicht leider nicht aus um einen konkreten Vorschlag zu machen.  Sie schreiben, dass die Verknüpfung von NOTIZEN und UMSATZ über die Felder ID_NR und KundenNr stattfindet sowie das Feld auch der Primary Key ist? Das würde bedeuten, dass in den beiden Tabellen zu einem Kunden jeweils nur eine Notiz sowie Umsatz gespeichert werden kann.

Ich vermute, dass es in den beiden Tabellen jeweils noch ein Feld KundenNr gibt über das die 1:n Beziehung hergestellt wird?
Wenn dem so ist, können Sie im ODBC Adapter im SQL die Tabellen per JOIN miteinander verknüpfen und dann in Ihre neue Tabelle importieren.

SQL JOIN um mehrere Tabellen anhand der Beziehung auszulesen (ungetestet)
Code:
SELECT ADRESSEN.*, NOTIZEN.Datum as DatumN, NOTIZEN.Kurzbeschreibung, UMSATZ.Datum as DatumU, UMSATZ.Auftragsbeschreibung from ADRESSEN LEFT JOIN NOTIZEN ON ADRESSEN.KundenNr = NOTIZEN.KundenNr LEFT JOIN UMSATZ Adressen.KundenNr = UMSATZ.KundenNr

Falls das nicht zutrifft bitte etwas genauer Beschreiben was durchgeführt werden soll.

Hinweis: Der ODBC Adapter , sowie alle anderen Datenbank Adapter bis auf den SQLite Adapter , können derzeit keine Tabellen oder nicht vorhandene Felder in Tabellen dynamisch erzeugen. Hier müssten Sie im Vorfeld die Tabelle manuell einmalig anlegen.

 

gruß
Robert Stark

Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
3 Jahre 7 Monate her #4244 von Hinnerk
Moin,
ich versuch's nochmal ;-)

Nein, das Feld KundenNr gibt es leider nur in der ADRESSEN-Tabelle. In den Tabellen NOTIZEN und UMSATZ gibt es nur die ID-NR. Dies ist quasi der kryptische Maschinen-Code für die Kunden-Nr. Aber eine ID-NR hat immer die gleiche KundenNr.
Wenn ich nun in der UMSATZ- und NOTIZEN-Tabelle die Kunden-Nr. statt der ID-Nr. hätte würde die u.a. Formel wahrscheinlich passen. Es müsste also anhand der ID-Nr. die KundenNr. ermittelt werden.

Puuh .... ob das einer kapiert? ;-)
Ich hoffe mal.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
3 Jahre 7 Monate her - 3 Jahre 7 Monate her #4245 von FlowHeater-Team
Hallo Hinnerk,

haben die zwei Tabellen NOTIZEN und UMSATZ keinen eindeutigen Schlüssel (Primary Key)?

Ok, dann können Sie es auch etwas anders lösen. Sie benötigen dazu zwei Verarbeitungsschritte. Pro Verarbeitungsschritt wir jeweils eine Tabelle (UMSATZ bzw. NOTIZEN). Im Anhang finden Sie für einen Step ein Beispiel. Das Beispiel verwendet eine Access Datenbank auf der READ Seite, die Werte werden zur Demonstration lediglich in eine InMemory Adapter Tabelle geschrieben.

Für den SQL JOIN geben Sie dann entweder

             SELECT * from ADRESSEN INNER JOIN NOTIZEN ON ADRESSEN.KundenNr = NOTIZEN.ID_NR

oder aber

             SELECT * from ADRESSEN INNER JOIN UMSATZ ON ADRESSEN.KundenNr = UMSATZ.ID_NR

Der Wert für die Ursprungstabelle wird im jeweiligen Verarbeitungsschritt über einen statischen Wert, der aus einem X-Value Heater kommt, gesetzt.


 

 

Dateianhang:

Dateiname: sql-join.zip
Dateigröße:31 KB

gruß
Robert Stark

Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.
Letzte Änderung: 3 Jahre 7 Monate her von FlowHeater-Team.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Ladezeit der Seite: 0.277 Sekunden
FlowHeater Logo

FlowHeater - Der Daten Spezialist

Effiziente Datenintegration und Transformation mit FlowHeater - Ihre Lösung für nahtlosen Datentransfer.

Rechtliches

Support & Kontakt

Kontaktinformation

Telefon:
0951 / 99339792

E-Mail:
Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein.


Copyright © 2009-2024 by FlowHeater GmbH. Alle Rechte vorbehalten.