FlowHeater Demo Video
 
Der Daten Import / Export Spezialist
 
Willkommen, Gast
Benutzername: Passwort: Angemeldet bleiben:
  • Seite:
  • 1

THEMA:

Zusammenführung aus mehreren Tabellen einer ODBC-Quelle 3 Wochen 5 Tage her #4242

Moin.
Folgende Datenbank (firebird, Anbindung über ODBC) mit mehreren Tabellen ist vorhanden:
Tabelle "ADRESSEN" mit den Feldern: ID-NR, KundenNr, Name, Strasse, 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, Strasse, 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.

Zusammenführung aus mehreren Tabellen einer ODBC-Quelle 3 Wochen 4 Tage her #4243

  • FlowHeater-Team
  • FlowHeater-Teams Avatar
  • Offline
  • Beiträge: 1635
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)
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.

Zusammenführung aus mehreren Tabellen einer ODBC-Quelle 3 Wochen 4 Tage her #4244

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.

Zusammenführung aus mehreren Tabellen einer ODBC-Quelle 3 Wochen 4 Tage her #4245

  • FlowHeater-Team
  • FlowHeater-Teams Avatar
  • Offline
  • Beiträge: 1635
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.
Anhänge:

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Letzte Änderung: von FlowHeater-Team.
  • Seite:
  • 1
Ladezeit der Seite: 0.202 Sekunden

andere Sprachen

en

FlowHeater Home

de en

Impressum/Kontakt

Datenschutz

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

Follow us on

twitter  facebook

YouTube

 de en