SAP Jobsuche bei DV-Treff


Suchen
daytona80
vor 8 Jahre
Hallo zusammen,

vielleicht kann mir jemand bei folgenden Problem auf die Sprünge helfen:

In einer Tabelle A stehen beliebige viele Werte in einer Spalte I:

Wert 1

Wert 2

Wert n

In einer Tabelle B stehen ebenfalls beliebig viele Werte in einer Spalte I, jedoch in den meisten Fällen mehr Werte als in Tabelle A:

Wert A

Wert B

Wert C

Wert D

Wert N

Die Logik müsste nun so lauten, dass Wert n-N, Wert 2-D und Wert 1-C korreliert. Also mit dem letzten Wert aus Tabelle A zum letzten Wert der Tabelle B eine Verbindung hergestellt wird. So würde ich dann gern auf eine Spalte II in Tabelle B zugreifen wollen um an diese Daten zu gelangen...


Vielen Dank und viele Grüße
wreichelt
vor 8 Jahre
Hallo,

Tabelle A

DESCRIBE TABLE A LINES w_lines.

read table A index w_lines.

Tabelle B

DESCRIBE TABLE B LINES B_lines.

read table B index b_lines.

so stehen die beiden letzten Tabelleneinträge zur Verfügung.

Gruß

Wolfgang

MrBojangles
vor 8 Jahre
Hallo Daytona,

besser wäre es natürlich, wenn Du die Tabellen über ein gemeinsames Feld verknüpfen könntest und nicht über die relative Position des Eintrags.


Weiterhin viel Freude mit SAP...

Cheers

MrB.

daytona80
vor 8 Jahre
Hallo MrBojangles,

wenn es dieses Feld gäbe, würde ich das auch tun 😁 nur leider....


Vielen Dank und viele Grüße
MrBojangles
vor 8 Jahre
Ok, etwas eigenwilliges Datenmodell, aber dann musst Du die Anzahl der Einträge in den Tabellen A und B ermitteln (wie von Wolfgang beschrieben) und dann in Relation zum Tabellenende entsprechend lesen:


* schematisch
*AnzA,B = Anzahl Einträge Tab.A/B
*rPosA,B = relative Position in Bezug zum Tabellenende Tab. A/B

LOOP AT A...

  rPosA = AnzA - sy-tabix.  "z.B. 3. Eintrag von hinten Tab. A
  rPosB = AnzB - rposA.     "     3. Eintrag von hinten Tab. B
  READ TABLE B INDEX rPosB...
  ...do something.
  
ENDLOOP.

Denk hierbei ans Fehlerhandling, falls Tab A doch mal mehr Einträge als B hat usw.


Weiterhin viel Freude mit SAP...

Cheers

MrB.