- Beiträge: 53
Daten aus zwei Tabellen anhand Kriterien aktualisieren
- Nick
- Autor
- Offline
- Benutzer
Weniger
Mehr
5 Jahre 7 Monate her #3662
von Nick
Daten aus zwei Tabellen anhand Kriterien aktualisieren wurde erstellt von Nick
Hallo,
Ich habe zwei Tabellen und es sollen Daten aus Tabelle1 anhand mehrerer Kriterien in der Tabelle2 beim jeweiligen Datensatz angefügt/aktualisiert werden.
Tabelle1 beinhaltet eine Tarifliste mit u.a. den Angaben Kundennummer, Gewicht, Land und Preis. Die
Tabelle2 beinhaltet Angaben zu Sendungen mit u.a. Kundennummer, Paketnummer, Gewicht, Produktcode und Land.
Es soll nun der Preis zu einem Paket aus Tabelle1 anhand Kundennummer, Gewicht und Land ermittelt und in Tabelle2 eingefügt/aktualisiert werden. Wie kann ich dieses realisieren?
Um es einfach zu Beschreiben:
Nimm Paket aus Tabelle2 und schaue anhand der Kundennummer, Gewicht, Produktcode und Land nach dem
Preis inTabelle1 und schreibe diesen in ein Feld in Tabelle2.
Vielen Dank für Unterstützung.
Nick
Ich habe zwei Tabellen und es sollen Daten aus Tabelle1 anhand mehrerer Kriterien in der Tabelle2 beim jeweiligen Datensatz angefügt/aktualisiert werden.
Tabelle1 beinhaltet eine Tarifliste mit u.a. den Angaben Kundennummer, Gewicht, Land und Preis. Die
Tabelle2 beinhaltet Angaben zu Sendungen mit u.a. Kundennummer, Paketnummer, Gewicht, Produktcode und Land.
Es soll nun der Preis zu einem Paket aus Tabelle1 anhand Kundennummer, Gewicht und Land ermittelt und in Tabelle2 eingefügt/aktualisiert werden. Wie kann ich dieses realisieren?
Um es einfach zu Beschreiben:
Nimm Paket aus Tabelle2 und schaue anhand der Kundennummer, Gewicht, Produktcode und Land nach dem
Preis inTabelle1 und schreibe diesen in ein Feld in Tabelle2.
Vielen Dank für Unterstützung.
Nick
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
- Offline
- Administrator
5 Jahre 7 Monate her - 5 Jahre 7 Monate her #3663
von FlowHeater-Team
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.
FlowHeater-Team antwortete auf Daten aus zwei Tabellen anhand Kriterien aktualisieren
Hallo Nick,
im Prinzip geht es so wie in folgenden Beispiel beschreiben: CSV und Excel Daten über SQLite Datenbank zusammenführen
Tipp: Ganz unten finden Sie ein ausführliches Tutorial Video.
Ich habe mal exemplarisch für ein Update über mehrere Felder ein kurzes Beispiel für den InMemory Adapter beigefügt.
Vorgehensweise
im Prinzip geht es so wie in folgenden Beispiel beschreiben: CSV und Excel Daten über SQLite Datenbank zusammenführen
Tipp: Ganz unten finden Sie ein ausführliches Tutorial Video.
Ich habe mal exemplarisch für ein Update über mehrere Felder ein kurzes Beispiel für den InMemory Adapter beigefügt.
Vorgehensweise
- Datei input2.txt in die InMemory Tabelle einlesen
- Datei input1.txt einlesen und den Preis in der InMemory Tabelle aktualisieren. Achtung: Adapter auf nur Update stellen und mehrere Felder als Schlüsselfeld für Updates konfigurieren!
- Ausgabe der InMemory Tabelle
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:
Letzte Änderung: 5 Jahre 7 Monate her von FlowHeater-Team.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Nick
- Autor
- Offline
- Benutzer
Weniger
Mehr
- Beiträge: 53
5 Jahre 7 Monate her #3666
von Nick
Nick antwortete auf Daten aus zwei Tabellen anhand Kriterien aktualisieren
Hallo Herr Stark,
ich habe mir die Vorgehensweise angesehen. Besten Dank. Es funktioniert soweit einwandfrei. Alle Daten sind auf einem SQL-Server. Wo ich allerdings nicht weiter komme:
Ich habe noch Daten aus einer Tabelle wo ich allerdings quasi noch suchen muss: In der Tabelle steht z.B. 1-5;Test. Ich habe nun den Wert 2 und wenn dieser vorkommt, muss Test geliefert/geupdated werden.
Eigentlich mache ich das bisher einfach mit <= und >=. Im InMemory weiß aber nun nicht, wie dieses noch unterbringe. Ich habe es u.a. mit dem SQL-Heater und Lookup-Heater versucht was aber nicht wirklich funktioniert.
Viele Grüsse
Nick
P.S. Das Video-Tutorial ist klasse.
ich habe mir die Vorgehensweise angesehen. Besten Dank. Es funktioniert soweit einwandfrei. Alle Daten sind auf einem SQL-Server. Wo ich allerdings nicht weiter komme:
Ich habe noch Daten aus einer Tabelle wo ich allerdings quasi noch suchen muss: In der Tabelle steht z.B. 1-5;Test. Ich habe nun den Wert 2 und wenn dieser vorkommt, muss Test geliefert/geupdated werden.
Eigentlich mache ich das bisher einfach mit <= und >=. Im InMemory weiß aber nun nicht, wie dieses noch unterbringe. Ich habe es u.a. mit dem SQL-Heater und Lookup-Heater versucht was aber nicht wirklich funktioniert.
Viele Grüsse
Nick
P.S. Das Video-Tutorial ist klasse.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
- Offline
- Administrator
5 Jahre 7 Monate her #3668
von FlowHeater-Team
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.
FlowHeater-Team antwortete auf Daten aus zwei Tabellen anhand Kriterien aktualisieren
Hallo Nick,
hier müssten Sie die Werte in zwei unterschiedliche Felder (z.B. von und bis) importieren. Das geht mit dem String Split Heater und als Trennzeichen ein Minus verwenden.
Anschließend können Sie über einen SQL Heater auf der vorher eingelesenen InMemory Tabelle über folgenden SQL suchen.
select [WERT] where $CMP$ >= [VON] and $CMP$ <= [BIS]
Der FlowHeater Parameter "$CMP$" muss vorher noch mit dem gerade anliegenden Wert per Set Parameter Heater belegt werden. Im Anhang finden Sie ein kleines Beispiel dazu.
hier müssten Sie die Werte in zwei unterschiedliche Felder (z.B. von und bis) importieren. Das geht mit dem String Split Heater und als Trennzeichen ein Minus verwenden.
Anschließend können Sie über einen SQL Heater auf der vorher eingelesenen InMemory Tabelle über folgenden SQL suchen.
select [WERT] where $CMP$ >= [VON] and $CMP$ <= [BIS]
Der FlowHeater Parameter "$CMP$" muss vorher noch mit dem gerade anliegenden Wert per Set Parameter Heater belegt werden. Im Anhang finden Sie ein kleines Beispiel dazu.
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.
- Nick
- Autor
- Offline
- Benutzer
Weniger
Mehr
- Beiträge: 53
5 Jahre 7 Monate her #3672
von Nick
Nick antwortete auf Daten aus zwei Tabellen anhand Kriterien aktualisieren
Hallo Herr Stark,
das Vorgehen bzw. der Flow endet mit der Fehlermeldung:
Falscher SQL Syntax für den InMemory Adapter.
SQL = select [MeinWert] from Default where >= [NummerVonTmp] and <= [NummerBisTmp
Meine Vorgehensweise hierzu:
Verarbeitungsschritt1
Read > SQL-Adapter mit Tabelle1, Write > InMemory-Adapter
Verarbeitungsschritt2
Read > SQL-Adapter mit Tabelle2, Write > InMemory-Adapter
Verarbeitungsschritt3
Read > InMemory-Adapter, Write > Txt-Adapter
Auf [MeinWert] ein Set-Variable mit CMP ($CMP$)
Dazu den SQL-Heater mit select [MeinWert] from default where $CMP$ >= [NummerVonTmp] and $CMP$ <= [NummerBisTmp]
Es scheint das mit der Variablen nicht zu funktionieren, also der SQL-Heater erkennt diese nicht. Klicke ich im SQL-Heater auf SQL Statement mit ersten Paramter anzeigen verschwindet $CMP$ und es wird lediglich ein Leerzeichen an der Stelle angezeigt.
Freundliche Grüsse
Nick
das Vorgehen bzw. der Flow endet mit der Fehlermeldung:
Falscher SQL Syntax für den InMemory Adapter.
SQL = select [MeinWert] from Default where >= [NummerVonTmp] and <= [NummerBisTmp
Meine Vorgehensweise hierzu:
Verarbeitungsschritt1
Read > SQL-Adapter mit Tabelle1, Write > InMemory-Adapter
Verarbeitungsschritt2
Read > SQL-Adapter mit Tabelle2, Write > InMemory-Adapter
Verarbeitungsschritt3
Read > InMemory-Adapter, Write > Txt-Adapter
Auf [MeinWert] ein Set-Variable mit CMP ($CMP$)
Dazu den SQL-Heater mit select [MeinWert] from default where $CMP$ >= [NummerVonTmp] and $CMP$ <= [NummerBisTmp]
Es scheint das mit der Variablen nicht zu funktionieren, also der SQL-Heater erkennt diese nicht. Klicke ich im SQL-Heater auf SQL Statement mit ersten Paramter anzeigen verschwindet $CMP$ und es wird lediglich ein Leerzeichen an der Stelle angezeigt.
Freundliche Grüsse
Nick
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Nick
- Autor
- Offline
- Benutzer
Weniger
Mehr
- Beiträge: 53
5 Jahre 7 Monate her #3673
von Nick
Nick antwortete auf Daten aus zwei Tabellen anhand Kriterien aktualisieren
Nachtrag:
Ich habe es auch mit dem Loop-Heater versucht. Wenn ich nur
select [WERT] where $CMP$ >= [VON] eintrage, erhalte ich, wenn auch nicht korrekte, Daten. Trage ich
select [WERT] where $CMP$ >= [VON] and $CMP$ <= [BIS] ein, meldet der LoopHeater "LoopHeater Error'.
Ich habe es auch mit dem Loop-Heater versucht. Wenn ich nur
select [WERT] where $CMP$ >= [VON] eintrage, erhalte ich, wenn auch nicht korrekte, Daten. Trage ich
select [WERT] where $CMP$ >= [VON] and $CMP$ <= [BIS] ein, meldet der LoopHeater "LoopHeater Error'.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
- Offline
- Administrator
5 Jahre 7 Monate her #3675
von FlowHeater-Team
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.
FlowHeater-Team antwortete auf Daten aus zwei Tabellen anhand Kriterien aktualisieren
Hallo Nick,
ich vermute jetzt, dass der FlowHeater Datentyp für das InMemory Tabellen Feld „BIS“ nicht auf „Integer“ gesetzt wurde, bitte prüfen und
ggf. ändern. Falls dass das Problem nicht löst bitte mal einen Screenshot von der Fehlermeldung zur weiteren Analyse posten.
Die Ersetzung der Parameter funktioniert nur wenn im Parameter auch Werte gespeichert sind. Sie können über Menü->Bearbeiten->Parameter den Parameter auch anlegen und einen Standard Wert dafür setzen. So sollte dieser bei der Ersetzung verwendet werden.
ich vermute jetzt, dass der FlowHeater Datentyp für das InMemory Tabellen Feld „BIS“ nicht auf „Integer“ gesetzt wurde, bitte prüfen und
ggf. ändern. Falls dass das Problem nicht löst bitte mal einen Screenshot von der Fehlermeldung zur weiteren Analyse posten.
Die Ersetzung der Parameter funktioniert nur wenn im Parameter auch Werte gespeichert sind. Sie können über Menü->Bearbeiten->Parameter den Parameter auch anlegen und einen Standard Wert dafür setzen. So sollte dieser bei der Ersetzung verwendet werden.
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.
- Nick
- Autor
- Offline
- Benutzer
Weniger
Mehr
- Beiträge: 53
5 Jahre 7 Monate her - 5 Jahre 7 Monate her #3678
von Nick
Nick antwortete auf Daten aus zwei Tabellen anhand Kriterien aktualisieren
Hallo Herr Stark,
bei Verwendung des InMemory-Adapters mit Datenbestand wie zuvor beschreiben sowie der Abfrage select [MeinWert] from default where $CMP$ >= [NummerVonTmp] and $CMP$ <= [NummerBisTmp].und dem Werte-Format Integer erhalte ich nun eine andere Fehlermeldung:
Viele Grüsse
Nick
Nachtrag
Ich konnte obigen Fehler finden: Falschen Parameter zugeordnet. Es erscheint nun aber diese Meldung:
Es fehlt wie schon erwähnt der Parameter in der angezeigten Meldung:
SQL = Select [MeinWert] from Default where [HIER FEHLT DER PARAMETER] >= [VON] and <= [BIS]
Dieser wird irgendwie nicht übergeben.Erstellt wird dieser mit einem fix angelegten Parameter sowie Integer und der 1.
bei Verwendung des InMemory-Adapters mit Datenbestand wie zuvor beschreiben sowie der Abfrage select [MeinWert] from default where $CMP$ >= [NummerVonTmp] and $CMP$ <= [NummerBisTmp].und dem Werte-Format Integer erhalte ich nun eine andere Fehlermeldung:
Viele Grüsse
Nick
Nachtrag
Ich konnte obigen Fehler finden: Falschen Parameter zugeordnet. Es erscheint nun aber diese Meldung:
Es fehlt wie schon erwähnt der Parameter in der angezeigten Meldung:
SQL = Select [MeinWert] from Default where [HIER FEHLT DER PARAMETER] >= [VON] and <= [BIS]
Dieser wird irgendwie nicht übergeben.Erstellt wird dieser mit einem fix angelegten Parameter sowie Integer und der 1.
Anhänge:
Letzte Änderung: 5 Jahre 7 Monate her von Nick.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
- Offline
- Administrator
5 Jahre 7 Monate her #3681
von FlowHeater-Team
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.
FlowHeater-Team antwortete auf Daten aus zwei Tabellen anhand Kriterien aktualisieren
Hallo Nick,
ich denke immer noch, dass es an dem falschen Datentyp liegt. Sie müssen beim Einlesen der InMemory Tabelle den Datentyp der Felder [VON]/[BIS] auf „INTEGER“ stellen, siehe Screenshot.
Funktioniert bei Ihnen das obige Beispiel?
ich denke immer noch, dass es an dem falschen Datentyp liegt. Sie müssen beim Einlesen der InMemory Tabelle den Datentyp der Felder [VON]/[BIS] auf „INTEGER“ stellen, siehe Screenshot.
Funktioniert bei Ihnen das obige Beispiel?
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.
- Nick
- Autor
- Offline
- Benutzer
Weniger
Mehr
- Beiträge: 53
5 Jahre 7 Monate her #3685
von Nick
Nick antwortete auf Daten aus zwei Tabellen anhand Kriterien aktualisieren
Hallo Herr Stark,
diese Anfrage konnte ich lösen. Ich bin immer davon ausgegangen, dass ich nur beim Parameter Integer wählen muss. Stelle ich auch noch, wie Sie zuvor beschrieben haben, auf der Write-Seite des InMemory-Adapters die besagten Felder auf Integer funktioniert es.
Eine weitere Fehlerursache war die Tabelle mit den Nummern selbst. Aus einer Altlast waren hier noch Nummern welche nicht aus reinen Zahlen bestanden haben.
Vielen Dank für die Unterstützung.
Freundliche Grüsse
Nick
diese Anfrage konnte ich lösen. Ich bin immer davon ausgegangen, dass ich nur beim Parameter Integer wählen muss. Stelle ich auch noch, wie Sie zuvor beschrieben haben, auf der Write-Seite des InMemory-Adapters die besagten Felder auf Integer funktioniert es.
Eine weitere Fehlerursache war die Tabelle mit den Nummern selbst. Aus einer Altlast waren hier noch Nummern welche nicht aus reinen Zahlen bestanden haben.
Vielen Dank für die Unterstützung.
Freundliche Grüsse
Nick
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
Ladezeit der Seite: 0.338 Sekunden