Application Development and Automation 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: 
Read only

Program Help

Former Member
0 Likes
655

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
Read only

kesavadas_thekkillath
Active Contributor
0 Likes
570

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
Read only

Former Member
0 Likes
570

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.

Read only

kesavadas_thekkillath
Active Contributor
0 Likes
571

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.