Informationen aus einer zusätzlichen Tabelle mit einbinden

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

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

Informationen aus einer zusätzlichen Tabelle mit einbinden

Beitrag von patlau (Specialist / 126 / 11 / 0 ) »
Hallo liebe Leute,

habe hier folgenden Code:
DATA:
l_t_vbap TYPE STANDARD TABLE OF vbap WITH KEY vbeln posnr,
l_v_tabix_loop1 LIKE sy-tabix.

FIELD-SYMBOLS: <vbap_fields> TYPE vbap,

SELECT-OPTIONS: so_matnr FOR <vbap_fields>-matnr,

SELECT vbeln matnr
FROM vbap INTO CORRESPONDING FIELDS OF TABLE l_t_vbap.

LOOP AT l_t_vbap ASSIGNING <vbap_fields>.
l_v_tabix_loop1 = sy-tabix.
IF <vbap_fields>-matnr IN so_matnr.

ELSE.
DELETE l_t_vbap INDEX l_v_tabix_loop1.
ENDIF.
ENDLOOP.

" Ausgabe Bildschirm
LOOP AT l_t_vbap ASSIGNING <vbap_fields>.
WRITE:/ <vbap_fields>-vbeln,
<vbap_fields>-matnr.
ENDLOOP.

Dieser COde hat eine Materialnummer als Selektion und gibt mir eine Belegnummer und die Materialnummer aus und löscht die Zeilen meiner internen Tabelle welche nicht in der Selektion gewählt wurde ( hoffe das ist klar).

Ich möchte nun eine Information aus einer weiteren Tabelle (vbak) miteinbinden und zwar über drei Wege: 1. SELECT Anweisung, 2. Über eine JOIN-Verknüpfung und 3. READ-Anweisung.
Ich weiss leider nicht so recht wie das gehen soll... hat da jemand Ideen?

Letztendlich will ich die Informationen der alten Tabelle vbap und die der neuen vbak in einer selbst erstellten internen Tabelle ausgeben (das bekomme ich selbst hin)

Danke im Vorraus für die Hilfe

Viele Grüße Patryk

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


Re: Informationen aus einer zusätzlichen Tabelle mit einbind

Beitrag von ratsnus (Specialist / 357 / 2 / 56 ) »
slai Patryk,

ich empfehle dir die F1 Hilfe für den Befehl select zu rate zu ziehen.
Im ABAP editor den Cursor im Wort select belassen und F1 drücken.

Auch der Befehl read wird dort näher erläutert.

gruss
ratsnus
<:: XING-Gruppe Tricktresor::>

Re: Informationen aus einer zusätzlichen Tabelle mit einbind

Beitrag von Frank Zet. (ForumUser / 89 / 4 / 1 ) »
Ein Beispiel:

Code: Alles auswählen.

SELECT a~<feldname> b~<feldname> b~<feldname>
    INTO CORRESPONDING FIELDS OF TABLE itab
    FROM vbak as a
    INNER JOIN vbap as b
    ON b~<keyfield> = a~<keyfield>
    WHERE a~<feldname> IN <Sel-opt>                   
    AND   a~<feldname> = <feldwert>.   

if sy-subrc = 0.
 read table itab with...<index>...
endif.
Aber die F1-Hilfe bringt dich da bestimmt auch weiter. Ansonsten such doch mal in den Sourcen mit RS_ABAP_SOURCE_SCAN. Da findest du bestimmt ein Beispiel.

Gruß,
Frank
Zuletzt geändert von Frank Zet. am 17.04.2013 16:18, insgesamt 1-mal geändert.

Re: Informationen aus einer zusätzlichen Tabelle mit einbind

Beitrag von patlau (Specialist / 126 / 11 / 0 ) »
Ist das jetzt ein Beispiel für Select oder eine JOIN Verknüpfung?
Verstehe sie auch noch nicht richtig.. könnte man das an einem konkreten Beispiel festmachen?
Ich habe die beiden Tabellen vbap und vbak, möchte von vbap die matnr und die vbeln und von vbak netwr.
Jetzt kann ich dass doch auf drei Wege lösen (SELECT,JOIN,READ) oder gehören die alle zusammen?
Hoffe, dass ich nicht total daneben liege.

gruß

Re: Informationen aus einer zusätzlichen Tabelle mit einbind

Beitrag von Frank Zet. (ForumUser / 89 / 4 / 1 ) »
Das o. g. Beispiel ist eine Selectanweisung, die über eine Join-Bedingung Datensätze aus 2 DB-Tabellen liest (hier vbak und vbap). Die Read-Anweisung wird genutzt, um auf zur Laufzeit in internen Tabellen aufbereitete Daten zuzugreifen.

Re: Informationen aus einer zusätzlichen Tabelle mit einbind

Beitrag von ratsnus (Specialist / 357 / 2 / 56 ) »
ich weiss zwar nicht warum du den Nettowert aus den Kopfdaten auf positionsebene haben willst, wenn der Positionsnettowert doch in der VBAP Steht, aber egal :D
vielleicht bringt dich das hier etwas näher an die Thematik heran. hoffe es ist verständlich.

Code: Alles auswählen.

tables: vbap, vbak.
*interne Tabelle deklarieren
data: begin of itab occurs 0,
        vbeln like vbap-vbeln, "feld aus vbap Belegnummer
        posnr like vbap-posnr, "feld aus vbap Belegposition
        matnr like vbap-matnr, "feld aus vbap Materialnummer
        netwr like vbak-netwr, "feld aus vbak Nettowert aus Belegkopfdaten
      end of itab.

select-options: so_matnr for vbap-matnr.

*einfacher select mit Bedingung nur Datensätze aus VBAP für
*Materialnummern aus der selektion

select vbeln posnr matnr from vbap
into (itab-vbeln, itab-posnr, itab-matnr )
where matnr in so_matnr.

*interne Tabelle füllen
  append itab.
endselect.

*Ausgabe der internen Tabelle
loop at itab.
  write:/ itab-vbeln,
          itab-posnr,
          itab-matnr.
endloop.

*ineterne Tabelle löschen für 2. beispiel
refresh: itab.



*select mit join auf VBAK und Bedingung nur Matrialnummern
*aus Selektion

select vbap~vbeln vbap~posnr vbap~matnr vbak~netwr
  into (itab-vbeln, itab-posnr, itab-matnr, itab-netwr )
  from vbap inner join vbak
  on   vbap~vbeln = vbak~vbeln
  where vbap~matnr in so_matnr.

*interne Tabelle füllen
  append itab.
endselect.

*Ausgabe der internen Tabelle mit Nettowert aus der VBAK
loop at itab.
  write:/ itab-vbeln,
          itab-posnr,
          itab-matnr,
          itab-netwr.
endloop.
gruss
ratsnus
<:: XING-Gruppe Tricktresor::>

Re: Informationen aus einer zusätzlichen Tabelle mit einbind

Beitrag von patlau (Specialist / 126 / 11 / 0 ) »
Danke war wirklich hilfreich aber irgendiwe klemmt es noch...
Habe nun folgenden COde für die Select-Anweisung


TYPES: BEGIN OF ty_beleg,
vbeln TYPE vbap-vbeln, "feld aus vbap Belegnummer
matnr TYPE vbap-matnr, "feld aus vbap Materialnummer
netwr TYPE vbak-netwr, "feld aus vbak Nettowert aus Belegkopfdaten
END OF ty_beleg.

DATA: l_s_beleg TYPE ty_beleg,
l_t_beleg TYPE STANDARD TABLE OF ty_beleg.

FIELD-SYMBOLS: <beleg_fields> TYPE ty_beleg.


SELECT-OPTIONS: so_matnr FOR <beleg_fields>-matnr.



*Fall 1 : Aus Datenbanktabelle nachlesen (SELCT)
SELECT vbeln matnr FROM vbap
INTO CORRESPONDING FIELDS OF TABLE l_t_beleg
WHERE matnr IN so_matnr.

LOOP AT l_t_beleg ASSIGNING <beleg_fields>.
SELECT SINGLE netwr FROM vbak
INTO <beleg_fields>-netwr
WHERE vbeln = <beleg_fields>-vbeln.


ENDLOOP.

Nun will ich das ganze als nächstes über eine JOIN Anweisung lösen, bin mal soweit gekommen...

* Fall 2 : Per JOIN-Verknüpfung
SELECT vbeln matnr netwr
INTO CORRESPONDING FIELDS OF TABLE l_t_beleg
FROM vbap INNER JOIN vbak on vbeln = <beleg_fields>-vbeln.

Bitte um Rat

Gruß

Re: Informationen aus einer zusätzlichen Tabelle mit einbind

Beitrag von Frank Zet. (ForumUser / 89 / 4 / 1 ) »
So wird es nicht funktionieren. Schau dir einfach das Beispiel von ratsnus genau an (im coding herunterscrollen). Damit solltest du deinen Select-Join hinbekommen.

Seite 1 von 1

Vergleichbare Themen

0
Antw.
1525
Views
Excel Tabelle mit Informationen im Kopf erstellen und exportieren
von kaim77 » 10.03.2021 10:31 • Verfasst in ABAP® Core
1
Antw.
1920
Views
SAPScript neue Tabelle einbinden
von mogdi » 17.01.2008 11:27 • Verfasst in ABAP® für Anfänger
0
Antw.
1328
Views
V/LD: Konditionsliste mit zusätzlichen Infos ausgeben?
von Jufo » 08.10.2007 10:16 • Verfasst in Sales and Distribution
0
Antw.
1124
Views
Kopieren IT 1001 - Mit zusätzlichen Daten
von RainerP » 13.03.2013 15:59 • Verfasst in ABAP® für Anfänger
0
Antw.
1222
Views
Informationen zu Infoprovidern
von philipkoch2201 » 02.12.2015 11:41 • Verfasst in ABAP® Core

Ü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.