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

Selecting Two tables

Former Member
0 Likes
637

Hi everybody...

I need selet data from 2 tables VBAP and VBAK.which am doing succesfully into internal table it_vbak and it_vbap.But i need to give both the tables data into it_final which am doing like below.But the problem is all the data is selected twice.Please help.

FORM populate_it_final .

LOOP at it_vbak.

LOOP at it_vbap.

clear it_final.

it_final-vbeln = it_vbak-vbeln.

it_final-netwr = it_vbak-netwr.

it_final-ernam = it_vbak-ernam.

it_final-audat = it_vbak-audat.

it_final-bstnk = it_vbak-bstnk.

it_final-auart = it_vbak-auart.

it_final-matnr = it_vbap-matnr.

it_final-posnr = it_vbap-posnr.

it_final-werks = it_vbap-werks.

APPEND it_final.

endloop.

endloop.

endform.

With Regadrs

Vijay

6 REPLIES 6
Read only

Former Member
0 Likes
622

Use read statement on VBAP table inside the loop of VBAK and pass data to final internal table.

FORM populate_it_final .

SORT IT_VBAP BY VBELN.

LOOP at it_vbak.

Read table it_vbap into wa with key vbeln = it_final-vbap binary search.

if sy-subrc = 0.

it_final-vbeln = it_vbak-vbeln.

it_final-netwr = it_vbak-netwr.

it_final-ernam = it_vbak-ernam.

it_final-audat = it_vbak-audat.

it_final-bstnk = it_vbak-bstnk.

it_final-auart = it_vbak-auart.

it_final-matnr = wa_vbap-matnr.

it_final-posnr = wa_vbap-posnr.

it_final-werks = wa_vbap-werks.

APPEND it_final.

clear it_final.

endif.

endloop.

endform.

Regards,

Satish

Message was edited by:

Satish Panakala

Read only

0 Likes
622

Hi satish

Thanks for the inpuit but can u give dat piece of code

vijay

Read only

Former Member
0 Likes
622

hi,

check the code below:

wa_vbap same as it_vbap.

wa_vbak same as it_vbak.

wa_final same as it_final.

loop at it_vbap into wa_vbap.

read table it_vbak into wa_vbak with key vbeln = wa_vbap-vbeln.

if sy-subrc eq 0.

wa_final-vbeln =wa_vbak-vbeln.

wa_final-netwr = wa_vbak-netwr.

wa_final-ernam = wa_vbak-ernam.

wa_final-audat =wa_vbak-audat.

wa_final-bstnk = wa_vbak-bstnk.

wa_final-auart = wa_vbak-auart.

wafinal-matnr =wa_vbap-matnr.

wa_final-posnr =wa_vbap-posnr.

wa_final-werks = wa_vbap-werks.

endif.

append wa_final to it_final.

clear wa_final,wa_vbak, wa_vbap.

endloop.

Regards

Kannaiah

Read only

Former Member
0 Likes
622

Hi

If the data is selected twice then use the statement

Delete adjacent duplicates from itab

and delete all the repeated data.

If you use Read statement then it performs to read only single line of data

Regards

Pavan

Read only

Former Member
0 Likes
622

Hi

FORM populate_it_final .

LOOP at it_vbak.

LOOP at it_vbap where vbeln = it_vbak-vbeln. ( Vbeln must be available in VBAK).

clear it_final.

it_final-vbeln = it_vbak-vbeln.

it_final-netwr = it_vbak-netwr.

it_final-ernam = it_vbak-ernam.

it_final-audat = it_vbak-audat.

it_final-bstnk = it_vbak-bstnk.

it_final-auart = it_vbak-auart.

it_final-matnr = it_vbap-matnr.

it_final-posnr = it_vbap-posnr.

it_final-werks = it_vbap-werks.

APPEND it_final.

endloop.

endloop.

endform.

For Performance basis Use Read Statement as suggested .

Hope it Helps.

Praveen

With Regadrs

Vijay

Read only

VikasB
Active Participant
0 Likes
622

Hi Vijay

Instead of Looping twice use only one loop and read other internal table in that loop using key field.

loop at i_vbap

read table i_vbak with key vbeln = i_vbap-vbeln

if sy-subrc = 0

i_output-vbeln = i_vbak-vbeln.

....

....

append i_output.

endif.

regards,

vikas

plz reward if helpful