Interne Tabellen: Feldinhalte vergleichen

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
4 Beiträge • Seite 1 von 1
4 Beiträge Seite 1 von 1

Interne Tabellen: Feldinhalte vergleichen

Beitrag von Mario Reum (ForumUser / 3 / 0 / 0 ) »
Hallo zusammen,

gegeben seien zwei interne Tabellen:

lt_tabelle1 mit Spalte fgst (CHAR18).
lt_tabelle2 mit Spalte wmi (CHAR3).

Gerne möchte ich die neuen Konstrukte im ABAP nutzen um alle Einträge der lt_tabelle1 where fgst(3) = lt_tabelle2-wmi zu finden.

DATA(lt_filter) = FILTER #( lt_tabelle1 IN lt_tabelle2 where fgst(3) = wmi ).

Ist dies ohne Loop at lt_tabelle1 möglich? Vielleicht effizient mit einem CDS?

Vielen Dank im Voraus für Eure Tips!
Mario

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: Interne Tabellen: Feldinhalte vergleichen

Beitrag von DeathAndPain (Top Expert / 1944 / 257 / 413 ) »
Im Prinzip hast Du die Antwort mit deinem filter-Konstrukt ja schon selber gegeben. Was mir an dem filter-Befehl unsympathisch ist (und weswegen ich ihn fast nie verwende), ist die Tatsache, dass er als Zieldatentyp denselben Datentyp verlangt wie die Quelltabelle. Im Prinzip erzeugt man damit also eine Kopie von (möglicherweise großen) Teilen der Quelltabelle. Es fällt mir schwer, das für effizient zu halten, wenn es nur darum geht, bestimmte Zeilen in der Tabelle zu finden.

Am Ende ist aber die Frage, was Du mit Deinen Fundergebnissen im weiteren Verlauf machen möchtest, denn daraus ergibt sich, in welcher Form Du sie brauchst. Eine weitere Möglichkeit, Dein Problem zu lösen, wäre z.B.

Code: Alles auswählen.

TYPES type_table_of_char18 type standard table of CHAR18 with empty key.
DATA(lt_gesuchte_fgsts) = VALUE type_table_of_char18( FOR <zeile> IN lt_tabelle2 where fgst(3) = wmi ( <zeile>-fgst ) ).
Damit hättest Du alle fgst, die in den ersten drei Zeichen identisch mit ihren wmi sind, ohne die wmi als zusätzliche Ballastspalte mitzuschleppen, so wie der filter das macht.

(Hab den obenstehenden Code jetzt nicht getestet, aber so müsste das funktionieren.)

Oder Du machst sogar:

Code: Alles auswählen.

TYPES type_table_of_i type standard table of i with empty key.
DATA(lt_gesuchte_fgsts) = VALUE type_table_of_i( FOR <zeile> IN lt_tabelle2 INDEX INTO idx where fgst(3) = wmi ( idx ) ).
Damit bekämst Du dann eine Tabelle der Zeilennummern von den Zeilen, die Deiner Bedingung entsprechen.

Re: Interne Tabellen: Feldinhalte vergleichen

Beitrag von Mario Reum (ForumUser / 3 / 0 / 0 ) »
Hallo DAP,

zunächst einmal vielen Dank für Deine Antworten.
Das Problem besteht nach wie vor, die where-Bedingung mit fgst(3) passt nicht.

Re: Interne Tabellen: Feldinhalte vergleichen

Beitrag von tm987456 (ForumUser / 72 / 42 / 15 ) »
Filter kann kein Teilfeldzugriff über var(3). substring( ) funktioniert interessanterweise ebenfalls nicht. Dazu kommt, dass beim Filter nur binäre Vergleichsoperatoren erlaubt sind.

Entweder also schon bei der Erstellung der Tabellen mit einer Hilfsspalte arbeiten oder was anderes als Filter nehmen.

Gruss
tm

Seite 1 von 1

Vergleichbare Themen

3
Antw.
1326
Views
10
Antw.
17183
Views
interne tabellen vergleichen
von TobiB » 23.11.2007 13:12 • Verfasst in ABAP® Core
5
Antw.
1728
Views
Interne Tabellen vergleichen
von Micha_ela » 20.06.2024 16:19 • Verfasst in ABAP® für Anfänger
2
Antw.
2054
Views
2 interne Tabellen vergleichen
von Klende » 21.11.2005 15:16 • Verfasst in ABAP® für Anfänger
12
Antw.
7833
Views
2 interne Tabellen vergleichen
von Bright4.5 » 28.03.2019 08:56 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Aktuelle Forenbeiträge

Dialog-Container mit Toolbar/Status
vor 12 Stunden von black_adept gelöst 23 / 3703
User Exit EXIT_RQCPRM10_001
vor 13 Stunden von a-dead-trousers 2 / 269
Trennen Strasse und Hausnummer
vor 19 Stunden von payten 13 / 10621
Daten an Tabelle binden
Gestern von Lukas Sanders 2 / 1325

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Aktuelle Forenbeiträge

Dialog-Container mit Toolbar/Status
vor 12 Stunden von black_adept gelöst 23 / 3703
User Exit EXIT_RQCPRM10_001
vor 13 Stunden von a-dead-trousers 2 / 269
Trennen Strasse und Hausnummer
vor 19 Stunden von payten 13 / 10621
Daten an Tabelle binden
Gestern von Lukas Sanders 2 / 1325

Unbeantwortete Forenbeiträge

aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2860
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9451