Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

Program Help

Former Member
0 Kudos

I'm just wondering if anyone can help. I'm very new to the programming lark. I've got the below program

SELECT aamatnr bbmatnr aalifnr aainfnr

aaerdat aaernam ccerdat ccernam

ccvdatu ccbdatu

FROM eina AS aa INNER JOIN makt AS bb ON aamatnr = bbmatnr

INNER JOIN eord AS cc ON aamatnr = ccmatnr AND aalifnr = cclifnr

INTO CORRESPONDING FIELDS OF TABLE it_ir_v_sl

WHERE aa~matnr IN s_matnr AND

cc~flifn EQ 'X'.

SELECT * FROM a017 INTO wa_a017

FOR ALL ENTRIES IN it_ir_v_sl

WHERE matnr = it_ir_v_sl-matnr AND

lifnr = it_ir_v_sl-lifnr.

ENDSELECT.

-


I want to write fields

matnr,

maktx,

infnr,

lifnr,

erdat,

ernam,

datab, - from table a017

datbi, - from table a017

erdat,

ernam,

vdatu,

bdatu.

But i'm not sure how to get the two internal table that i've pulled the info into to fit together so i can write this out.

If anyone can help on this, it would be a great help.

Thanks

1 ACCEPTED SOLUTION

kesavadas_thekkillath
Active Contributor
0 Kudos

Build a final internal table with all the fields you require.


SELECT aa~matnr bb~matnr aa~lifnr aa~infnr
aa~erdat aa~ernam cc~erdat cc~ernam
cc~vdatu cc~bdatu
FROM eina AS aa INNER JOIN makt AS bb ON aa~matnr = bb~matnr
INNER JOIN eord AS cc ON aa~matnr = cc~matnr AND aa~lifnr = cc~lifnr

INTO CORRESPONDING FIELDS OF TABLE it_ir_v_sl
WHERE aa~matnr IN s_matnr AND
cc~flifn EQ 'X'.

if it_ir_v_sl[] is not initial.

SELECT * FROM a017 INTO table it_a017 FOR ALL ENTRIES IN it_ir_v_sl
WHERE matnr = it_ir_v_sl-matnr AND
lifnr = it_ir_v_sl-lifnr.
 endif.

loop at it_ir_v_sl into wa1. 
" if only 1 record exists in it_a017 for a record in           
 " it_ir_v_sl  then avoid second loop and use read statement 
   loop at it_a017  into wa2 where matnr = wa1-matnr and lifnr = wa1-lifnr. 
      move-corresponding wa1 to wa_final.
      move-corresponding wa2 to wa_final.
      append wa_final to it_final.
       clear: wa2,wa_final.
endloop.
if sy-subrc ne 0. " if required
 move-corresponding wa1 to wa_final.
append wa_final to it_final. 
clear wa_final.
endif.
endloop.

2 REPLIES 2

Former Member
0 Kudos

Hi

Take one Internal table with all fields as t_final.

format the data to final inter table.

loop at it_ir_v_sl.

move-corresponding fields to t_final.

SELECT * FROM a017 INTO wa_a017

FOR ALL ENTRIES IN it_ir_v_sl

WHERE matnr = it_ir_v_sl-matnr AND

lifnr = it_ir_v_sl-lifnr.

if sy-subrc = 0.

move the date fields to t_final table.

endif.

append t_final.

endloop.

kesavadas_thekkillath
Active Contributor
0 Kudos

Build a final internal table with all the fields you require.


SELECT aa~matnr bb~matnr aa~lifnr aa~infnr
aa~erdat aa~ernam cc~erdat cc~ernam
cc~vdatu cc~bdatu
FROM eina AS aa INNER JOIN makt AS bb ON aa~matnr = bb~matnr
INNER JOIN eord AS cc ON aa~matnr = cc~matnr AND aa~lifnr = cc~lifnr

INTO CORRESPONDING FIELDS OF TABLE it_ir_v_sl
WHERE aa~matnr IN s_matnr AND
cc~flifn EQ 'X'.

if it_ir_v_sl[] is not initial.

SELECT * FROM a017 INTO table it_a017 FOR ALL ENTRIES IN it_ir_v_sl
WHERE matnr = it_ir_v_sl-matnr AND
lifnr = it_ir_v_sl-lifnr.
 endif.

loop at it_ir_v_sl into wa1. 
" if only 1 record exists in it_a017 for a record in           
 " it_ir_v_sl  then avoid second loop and use read statement 
   loop at it_a017  into wa2 where matnr = wa1-matnr and lifnr = wa1-lifnr. 
      move-corresponding wa1 to wa_final.
      move-corresponding wa2 to wa_final.
      append wa_final to it_final.
       clear: wa2,wa_final.
endloop.
if sy-subrc ne 0. " if required
 move-corresponding wa1 to wa_final.
append wa_final to it_final. 
clear wa_final.
endif.
endloop.