Code: Alles auswählen.
select draw~dokst draw~loedk
appending table gt_doc_files
from draw join dms_doc_files
on draw~dokar = gt_doc_files~dokar
AND draw~dokvr = dms_doc_files~dokvr
AND draw~doktl = dms_doc_files~doktl
AND draw~dappl = dms_doc_files~dappl.
um das zu erreichen müsstest du wie folgt vorgehen:ich will 2 Felder aus der Tabelle DRAW in meine interne Tabelle gt_doc_files zu den bereits vorhandenen Feldern dazu hängen.
Code: Alles auswählen.
TYPES: BEGIN OF t_mara,
matnr LIKE mara-matnr,
maktx LIKE makt-maktx,
END OF t_mara.
DATA: gt_mara TYPE HASHED TABLE OF t_mara WITH UNIQUE KEY matnr.
FIELD-SYMBOLS: <mara> TYPE t_mara.
TYPES: BEGIN OF t_makt,
matnr LIKE mara-matnr,
maktx LIKE makt-maktx,
END OF t_makt.
DATA: gt_makt TYPE HASHED TABLE OF t_makt WITH UNIQUE KEY matnr,
wa_makt LIKE LINE OF gt_makt.
"Materialnummern. Hier soll später der Text hinzugelesen werden
SELECT matnr FROM mara APPENDING TABLE gt_mara UP TO 100 ROWS.
CHECK gt_mara IS NOT INITIAL.
"Zwischenspeicherung Materialtexte in einer internen Tabelle
"somit müssen wir in dem LOOP nicht mehr auf die MAKT zugreifen
SELECT matnr maktx FROM makt
APPENDING TABLE gt_makt
FOR ALL ENTRIES IN gt_mara
WHERE matnr = gt_mara-matnr
AND spras = sy-langu.
"für jeden eintrag in gt_mara die Texte aus der zwischengespeicherten Tabelle nachlesen
LOOP AT gt_mara ASSIGNING <mara>.
READ TABLE gt_makt INTO wa_makt
WITH TABLE KEY matnr = <mara>-matnr.
IF sy-subrc = 0.
"Verwendung eines FIELD-SYMBOLS erspart einem das MODIFY, die Zuweisung kann direkt ausgführt werden
<mara>-maktx = wa_makt-maktx.
ENDIF.
ENDLOOP.
Code: Alles auswählen.
select draw~dokar draw~doknr draw~dokvr draw~doktl draw~dokst draw~loedk draw~dappl
into corresponding fields of table gt_doc_files
from draw
for all entries in gt_doc_files
where draw~dokar = gt_doc_files~dokar
AND draw~doknr = gt_doc_files~doknr
AND draw~dokvr = gt_doc_files~dokvr
AND draw~doktl = gt_doc_files~doktl.