- Beiträge: 15
2 Tabellen vergleichen und Differenzen ausgeben
- MartinJ
- Autor
- Offline
- Benutzer
Weniger
Mehr
1 Jahr 4 Monate her - 1 Jahr 4 Monate her #4898
von MartinJ
2 Tabellen vergleichen und Differenzen ausgeben wurde erstellt von MartinJ
Guten Tag zusammen,
Ich habe eine Anforderung, die meine Fähigkeiten aber bei weitem übersteigt. Ich bin auch nicht sicher, ob es überhaupt geht.
Und zwar:
Wir haben 2 Tabellen:
Tabelle1, Spalte 1: 10-stellige Ziffer (oder string), zB 8517710000
Tabelle2, Spalte 1: 8-stellige Ziffer (oder string), zB 85177100
Tabelle2 soll 'eigentlich' immer einen zu Tab1 passenden Eintrag enthalten, zu vergleichen sind die ersten 8 Zeichen aus Tab1
Die Aufgabe:
Alle Zeilen aus Tab. 1 ins Ergebnis ausgeben, zu denen sich kein korrespondierender Eintrag in Tab. 2 finden lässt
Danke für jede Hilfe!
Martin
Ich habe eine Anforderung, die meine Fähigkeiten aber bei weitem übersteigt. Ich bin auch nicht sicher, ob es überhaupt geht.
Und zwar:
Wir haben 2 Tabellen:
Tabelle1, Spalte 1: 10-stellige Ziffer (oder string), zB 8517710000
Tabelle2, Spalte 1: 8-stellige Ziffer (oder string), zB 85177100
Tabelle2 soll 'eigentlich' immer einen zu Tab1 passenden Eintrag enthalten, zu vergleichen sind die ersten 8 Zeichen aus Tab1
Die Aufgabe:
Alle Zeilen aus Tab. 1 ins Ergebnis ausgeben, zu denen sich kein korrespondierender Eintrag in Tab. 2 finden lässt
Danke für jede Hilfe!
Martin
Letzte Änderung: 1 Jahr 4 Monate her von MartinJ. Begründung: Bilder
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
- Offline
- Administrator
1 Jahr 4 Monate her #4901
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 2 Tabellen vergleichen und Differenzen ausgeben
Hallo Martin,
das ist möglich und auch gar nicht so kompliziert Im Anhang finden Sie ein kleines Beispiel dazu.
Hier wird im ersten Verarbeitungsschritt, die erste Tabelle in eine InMemory Adapter Tabelle eingelesen. Während des Einlesens wird die Nummer über den SubString Heater auf 8 Zeichen gekürzt.
Im zweiten Verarbeitungsschritt wird dann die zweite Tabelle gelesen und über den String Replace Heater wird ein Lookup auf die im ersten Verarbeitungsschritt eingelesene InMemory Adapter Tabelle gemacht. Wird kein Eintrag gefunden wird der Wert „nicht gefunden“ zurückgegeben. Die Rückgabe wird dann über eine Bedingung geprüft und ggf. durch den Filter Heater gefiltert.
das ist möglich und auch gar nicht so kompliziert Im Anhang finden Sie ein kleines Beispiel dazu.
Hier wird im ersten Verarbeitungsschritt, die erste Tabelle in eine InMemory Adapter Tabelle eingelesen. Während des Einlesens wird die Nummer über den SubString Heater auf 8 Zeichen gekürzt.
Im zweiten Verarbeitungsschritt wird dann die zweite Tabelle gelesen und über den String Replace Heater wird ein Lookup auf die im ersten Verarbeitungsschritt eingelesene InMemory Adapter Tabelle gemacht. Wird kein Eintrag gefunden wird der Wert „nicht gefunden“ zurückgegeben. Die Rückgabe wird dann über eine Bedingung geprüft und ggf. durch den Filter Heater gefiltert.
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.
- MartinJ
- Autor
- Offline
- Benutzer
Weniger
Mehr
- Beiträge: 15
1 Jahr 3 Monate her - 1 Jahr 3 Monate her #4925
von MartinJ
MartinJ antwortete auf 2 Tabellen vergleichen und Differenzen ausgeben
Hallo,
danke für die Antwort und sorry für die Verspätung.
Ich glaube dass ihre Logik falsch rum ist. Im Output soll dann und nur dann eine Zeile erzeugt werden, wenn 1111111100 in tab1 geprüft wird und festgestellt wird, daß in tab2 11111111 nicht vorhanden ist.
Sie prüfen aber wohl umgekehrt?Ich habe ihre 2 Tabellen ins Verzeichnis kopiert und Ihre FHD eingelesen.
Es wird auch output.txt geschrieben, aber das Ergebnis ist nicht wie erwartet.
Hier der Inhalt der drei Tabellen, 1 und 2 wie von Ihnen erhalten:
tabelle1
nummer;bezeichnung
1111111100;eins
2222222200;zwei
3333333300;drei
tabelle2
nummer;bezeichnung
11111111;eins vorhanden
22222222;zwei vorhanden
33333333;drei vorhanden
44444444;vier !!! nicht vorhanden !!!
output (eben erzeugt)
nummer;bezeichnung;bezeichnung2
11111111;eins vorhanden;eins
22222222;zwei vorhanden;zwei
33333333;drei vorhanden;dreiDANKE!
MartinJ
danke für die Antwort und sorry für die Verspätung.
Ich glaube dass ihre Logik falsch rum ist. Im Output soll dann und nur dann eine Zeile erzeugt werden, wenn 1111111100 in tab1 geprüft wird und festgestellt wird, daß in tab2 11111111 nicht vorhanden ist.
Sie prüfen aber wohl umgekehrt?Ich habe ihre 2 Tabellen ins Verzeichnis kopiert und Ihre FHD eingelesen.
Es wird auch output.txt geschrieben, aber das Ergebnis ist nicht wie erwartet.
Hier der Inhalt der drei Tabellen, 1 und 2 wie von Ihnen erhalten:
tabelle1
nummer;bezeichnung
1111111100;eins
2222222200;zwei
3333333300;drei
tabelle2
nummer;bezeichnung
11111111;eins vorhanden
22222222;zwei vorhanden
33333333;drei vorhanden
44444444;vier !!! nicht vorhanden !!!
output (eben erzeugt)
nummer;bezeichnung;bezeichnung2
11111111;eins vorhanden;eins
22222222;zwei vorhanden;zwei
33333333;drei vorhanden;dreiDANKE!
MartinJ
Letzte Änderung: 1 Jahr 3 Monate her von FlowHeater-Team. Begründung: Formatierung/Zeilenumbruch korrigiert
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
- Offline
- Administrator
1 Jahr 3 Monate her - 1 Jahr 3 Monate her #4926
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 2 Tabellen vergleichen und Differenzen ausgeben
Hallo Martin,
dann muss lediglich die Bedingung im IF-THEN-ELSE Heater von gleich "=" auf ungleich "!=" geändert werden, siehe Screenshot.
So landen in der Ausgabe lediglich Zeilen / Datensätze die nicht vorhanden sind. Das Beispiel habe ich dementsprechend angepasst.
dann muss lediglich die Bedingung im IF-THEN-ELSE Heater von gleich "=" auf ungleich "!=" geändert werden, siehe Screenshot.
So landen in der Ausgabe lediglich Zeilen / Datensätze die nicht vorhanden sind. Das Beispiel habe ich dementsprechend angepasst.
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: 1 Jahr 3 Monate her von FlowHeater-Team.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- MartinJ
- Autor
- Offline
- Benutzer
Weniger
Mehr
- Beiträge: 15
1 Jahr 3 Monate her #4927
von MartinJ
MartinJ antwortete auf 2 Tabellen vergleichen und Differenzen ausgeben
soweit bestimmt richtig, aber die Logik soll genau andersrum sein.
Es sei
tabelle1
nummer;bezeichnung
1111111100;eins
2222222200;zwei
3333333300;drei
4444444400;vier
tabelle2
nummer;bezeichnung
11111111;eins vorhanden
22222222;zwei vorhanden
33333333;drei vorhanden
und weil ein Eintrag '44444444' in Tabelle 2 fehlt, soll in output geschrieben werden.
Mit anderen Worten: Tab1 ist immer die vollständige Tabelle. Tab2 soll auf Vollständigkeit geprüft werden.
Danke und sorry für die viele Mühe!
M.
Es sei
tabelle1
nummer;bezeichnung
1111111100;eins
2222222200;zwei
3333333300;drei
4444444400;vier
tabelle2
nummer;bezeichnung
11111111;eins vorhanden
22222222;zwei vorhanden
33333333;drei vorhanden
und weil ein Eintrag '44444444' in Tabelle 2 fehlt, soll in output geschrieben werden.
Mit anderen Worten: Tab1 ist immer die vollständige Tabelle. Tab2 soll auf Vollständigkeit geprüft werden.
Danke und sorry für die viele Mühe!
M.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
- Offline
- Administrator
1 Jahr 3 Monate her #4928
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 2 Tabellen vergleichen und Differenzen ausgeben
Hallo Martin,
dann müssen Sie zuerst die Tabelle 2 einlesen und anschließend Tabelle1 nach diesem Schema verarbeiten.
dann müssen Sie zuerst die Tabelle 2 einlesen und anschließend Tabelle1 nach diesem Schema verarbeiten.
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.
- MartinJ
- Autor
- Offline
- Benutzer
Weniger
Mehr
- Beiträge: 15
1 Jahr 3 Monate her #4930
von MartinJ
MartinJ antwortete auf 2 Tabellen vergleichen und Differenzen ausgeben
ich habs hingekriegt!
Die Liste der 10-stelligen Zolltarifnummern ("Tabelle1"):
nummer;bezeichnung
1111111100;Klebeband
2222222200;Schrauben
3333333300;Muttern
4444444400;U-Scheiben
1234567890;Alurohr
Die Liste der 8-stelligen EU-Warenarten ("Tabelle2"):
nummer;bezeichnung
11111111; bez1
22222222;bez2
33333333;bez3
...und weil zu den letzten beiden Zolltarifnummern keine Warenart existiert wird dieser Output erzeugt:
nummer;nummer_8Stellen;bezeichnung
4444444400;nicht gefunden;U-Scheiben
1234567890;nicht gefunden;Alurohr
.FHD anbei.
Auf ODBC-Abfrage der 'heißen Daten' aus der Datenbank hab ich inzwischen auch umgebaut.
VIELEN DANK, hätte ich selbst nie hingekriegt!
M
Die Liste der 10-stelligen Zolltarifnummern ("Tabelle1"):
nummer;bezeichnung
1111111100;Klebeband
2222222200;Schrauben
3333333300;Muttern
4444444400;U-Scheiben
1234567890;Alurohr
Die Liste der 8-stelligen EU-Warenarten ("Tabelle2"):
nummer;bezeichnung
11111111; bez1
22222222;bez2
33333333;bez3
...und weil zu den letzten beiden Zolltarifnummern keine Warenart existiert wird dieser Output erzeugt:
nummer;nummer_8Stellen;bezeichnung
4444444400;nicht gefunden;U-Scheiben
1234567890;nicht gefunden;Alurohr
.FHD anbei.
Auf ODBC-Abfrage der 'heißen Daten' aus der Datenbank hab ich inzwischen auch umgebaut.
VIELEN DANK, hätte ich selbst nie hingekriegt!
M
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
Ladezeit der Seite: 0.306 Sekunden