Zwei Tabellen zu einer Vereinigen

Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Getting started ... Alles für einen gelungenen Start.
13 Beiträge • Seite 1 von 1
13 Beiträge Seite 1 von 1

Zwei Tabellen zu einer Vereinigen

Beitrag von CSelberg (ForumUser / 8 / 2 / 0 ) »
Hallo zusammen,

ich habe folgendes Problem:
Ich habe zwei Strings die ich jeweils an einer Stelle splitte und diese dann jeweils in eine Tabelle schreibe. Jetzt habe ich also zwei Tabellen mit den jeweiligen Einträgen. Nun würde ich gerne eine dritte Tabelle erstellen und dort jeweils den ersten Eintrag von beiden Tabellen in die 1. und 2. Spalte eintragen und das natürlich für jeden weiteren Eintrag genau so machen.
Mir ist jedoch nicht klar ob man das und wie man das verwirklichen könnte.

Danke!

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


Re: Zwei Tabellen zu einer Vereinigen

Beitrag von DeathAndPain (Top Expert / 1795 / 213 / 396 ) »
Die erste Frage, die sich mir da stellt, ist, ob Du von internen Tabellen oder von Datenbanktabellen redest.

Re: Zwei Tabellen zu einer Vereinigen

Beitrag von CSelberg (ForumUser / 8 / 2 / 0 ) »
Von internen Tabellen

Re: Zwei Tabellen zu einer Vereinigen

Beitrag von DeathAndPain (Top Expert / 1795 / 213 / 396 ) »
Zum Verständnis: Der "Schlüssel", der die zusammengehörenden Einträge von Tabelle 1 und 2 verbindet, ist die Zeilennummer? Das klingt an sich schon wie schlechtes Programmdesign, denn dann hättest Du von vornherein nur eine Tabelle (nämlich die dritte) erzeugen sollen.

Gleichwohl ist Dein Wunsch natürlich machbar (hier in alter Syntax, da ich nicht weiß, ob Du schon auf 7.40 oder höher bist):

Code: Alles auswählen.

FIELD-SYMBOLS: fs_tabelle1 LIKE LINE OF tabelle1, fs_tabelle2 LIKE LINE OF tabelle2.

LOOP AT tabelle1 ASSIGNING fs_tabelle1.
  READ TABLE tabelle2 ASSIGNING fs_tabelle2 INDEX sy-tabix.
  wa_tabelle3-spalte1 = fs_tabelle1-spalte1.
  wa_tabelle3-spalte2 = fs_tabelle2-spalte2.
  APPEND wa_tabelle3 TO tabelle3.
ENDLOOP.
Zuletzt geändert von DeathAndPain am 03.08.2018 12:06, insgesamt 1-mal geändert.

Folgende Benutzer bedankten sich beim Autor DeathAndPain für den Beitrag:
CSelberg


Re: Zwei Tabellen zu einer Vereinigen

Beitrag von CSelberg (ForumUser / 8 / 2 / 0 ) »
Ja der Schlüssel ist leider die Zeilennummer. Meine erste Idee war es auch, nur mit einer Tabelle zu arbeiten aber ich hab leider nichts im Internet gefunden das mir dabei geholfen hat zu verstehen wie man das Umsetzen könnte. Mein Kollege meinte dann, dass er es so machen würde, wie oben beschrieben.

Vielen Dank! Werde das jetzt erstmal so einbauen, und dann schauen ob ich es nochmal änder und es mit einer Tabelle probiere :)

Re: Zwei Tabellen zu einer Vereinigen

Beitrag von deejey (Specialist / 418 / 128 / 45 ) »
DO-Schleife und auf beide Tabellen mit Index zugreifen, dann se Index 3. Tabelle daraus schreiben, das funzt aber nur wenn beide Tabellen pro Zeile wirklich zusammenpassen und gleich viele Sätze haben. Wenn nicht, eine itab als Primärtabelle festlegen dann die zweite mit Schlüssel dazulesen, und nur wenn zwei Einträge zusammenpassen in 3. Tabelle schreiben.

Das Wichtigste ist, dass man sie eindeutig matchen kann, wenn nicht, kann man das eh knicken.

Re: Zwei Tabellen zu einer Vereinigen

Beitrag von DeathAndPain (Top Expert / 1795 / 213 / 396 ) »
Prophylaktisch für den Fall ergänzender Nachfragen: Auf welchem Releasestand seid ihr? Ich würde ungern noch mehr sperrigen alten Code schreiben, wenn ihr schon 7.40 oder höher habt.

Re: Zwei Tabellen zu einer Vereinigen

Beitrag von DeathAndPain (Top Expert / 1795 / 213 / 396 ) »
deejey hat geschrieben:DO-Schleife und auf beide Tabellen mit Index zugreifen
Da finde ich meinen Ansatz mit LOOP über die eine Tabelle und die andere zum SY-TABIX dazulesen aber eleganter.

Re: Zwei Tabellen zu einer Vereinigen

Beitrag von deejey (Specialist / 418 / 128 / 45 ) »
mir doch egal

Re: Zwei Tabellen zu einer Vereinigen

Beitrag von CSelberg (ForumUser / 8 / 2 / 0 ) »
deejey hat geschrieben:DO-Schleife und auf beide Tabellen mit Index zugreifen, dann se Index 3. Tabelle daraus schreiben, das funzt aber nur wenn beide Tabellen pro Zeile wirklich zusammenpassen und gleich viele Sätze haben. Wenn nicht, eine itab als Primärtabelle festlegen dann die zweite mit Schlüssel dazulesen, und nur wenn zwei Einträge zusammenpassen in 3. Tabelle schreiben.

Das Wichtigste ist, dass man sie eindeutig matchen kann, wenn nicht, kann man das eh knicken.
Wenn sie nicht gleich viele Sätze haben ist davor im Customizing etwas schiefgelaufen, ansonsten dürfte es nicht passieren.

Wenn ich das richtig gelesen habe, sind wir auf dem Stand 7.50.
Perfekt das werde ich ausprobieren, danke!

Re: Zwei Tabellen zu einer Vereinigen

Beitrag von DeathAndPain (Top Expert / 1795 / 213 / 396 ) »
Wenn ich das richtig gelesen habe, sind wir auf dem Stand 7.50.
Dann schreib lieber modernen Code der Form:

Code: Alles auswählen.

DATA tabelle3 TYPE t_tabelle3.

LOOP AT tabelle1 ASSIGNING FIELD-SYMBOL(<fs_tabelle1>).
  APPEND VALUE t_tabelle3( spalte1 = <fs_tabelle1>-spalte1 spalte2 = tabelle2{ sy-tabix }-spalte2 ) to tabelle3.
ENDLOOP.
(geschweifte Klammern durch eckige ersetzen; das CODE-Tag hier im Forum kommt mit eckigen Klammern nicht klar)

Dann brauchst Du auch keine Workarea-Felder für die Tabellen 2 und 3 mehr. Allerdings dumpt o.g. Code, wenn tabelle2 weniger Zeilen hat als tabelle1, was aber Deinen Worten zufolge niemals passieren kann.

Re: Zwei Tabellen zu einer Vereinigen

Beitrag von DeathAndPain (Top Expert / 1795 / 213 / 396 ) »
Oder nach deejey (was in dem Fall mehr Sinn macht als im Fall des alten Codes):

Code: Alles auswählen.

DATA tabelle3 TYPE t_tabelle3.

DO LINES( tabelle1 ) TIMES.
  APPEND VALUE t_tabelle3( spalte1 = tabelle1{ sy-tabix }-spalte1 spalte2 = tabelle2{ sy-tabix }-spalte2 ) to tabelle3.
ENDDO.
Dann brauchst Du noch nicht mal das Feldsymbol für Tabelle 1.

Folgende Benutzer bedankten sich beim Autor DeathAndPain für den Beitrag:
CSelberg


Re: Zwei Tabellen zu einer Vereinigen

Beitrag von CSelberg (ForumUser / 8 / 2 / 0 ) »
Vielen Dank!

Seite 1 von 1

Vergleichbare Themen

2
Antw.
4689
Views
interne Tabellen vereinigen (outer join)
von Carlos-X » 01.06.2008 13:18 • Verfasst in ABAP® für Anfänger
3
Antw.
354
Views
Operieren mit zwei Tabellen
von LisaKremer » 22.01.2020 17:57 • Verfasst in ABAP® für Anfänger
7
Antw.
8358
Views
Select auf zwei Tabellen
von mip » 27.03.2008 16:05 • Verfasst in ABAP® für Anfänger
10
Antw.
4153
Views
Ausgabe von zwei Tabellen mit ALV
von Katinka » 15.09.2005 12:54 • Verfasst in ABAP® Core
7
Antw.
3524
Views
Zwei Tabellen joinen (für ALV)?
von k4lisp3r4 » 22.01.2007 16:33 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

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

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.