‎2008 Feb 25 7:29 AM
hi frds plz give me response
If we have 2 internal tables and we want to move the common records in between them to a 3rd internal table. How do you do it?
plz respond this mail sudhakarbabu786@rediffmail.com
‎2008 Feb 25 7:33 AM
Hi,
You can do it this way:
LOOP AT <itab1> INTO <wa1>.
READ TABLE <itab2> INTO <wa2> WITH KEY <fieldx> = <wa1>-<fieldx>,
IF sy-subrc EQ 0.
MOVE fields from wa1 and/or wa2 TO <wa3>.
APPEND <wa3> TO <itab3>.
ENDIF.
ENDLOOP.
Cheers,
Aditya
‎2008 Feb 25 7:34 AM
Hi
Loop itab1.
Read table itab2 with key fieldname = itab1-fieldname
If sy-subrc eq 0.
move itab1 to itab3.
append itab3.
endif.
endloop.
If it is helpful rewards points.
Regards
Pratap.M
‎2008 Feb 25 7:35 AM
Hi,
just do like this,
this sample code,
select tripno
vehicleno
deltype
fleettype
werks
indate
intime
outdate
outtime
docdate
doctime
sindate
sintime
soutdate
souttime
ret_sindate
ret_sintime
ret_soutdate
ret_souttime
startkm
endkm
purpose
tripstatus
currentsite
remarks
created_by
created_on
created_tm
changed_by
changed_on
changed_tm
manual
seal_no
from
ztripheader
into table
l_tab_ztripheader
where
tripno in l_r_tripno
and
vehicleno in l_r_vehicleno
and
deltype in l_r_deltype
and
fleettype in l_r_fleettype
and
werks in l_r_werks
and
status in l_r_status.
endif. "First data package ?
s_counter_datapakid = s_counter_datapakid + 1.
sort l_tab_ztripheader by tripno.
select tripno
werks
sch_pickin_date
sch_pickin_time
sch_pickout_date
sch_pickout_time
startkm
remarks
created_by
created_on
created_tm
changed_by
changed_on
changed_tm
posnr
status
vbeln
startdate
starttime
enddate
endtime
umwrk
ulstartdate
ulstarttime
ulenddate
ulendtime
stoutdate
stouttime
vbeln_vl
sequence
vbeln_crt
posnr_crt
lfimg_crt
quant_hu
quant_crt
unscan_crt
netwr
waerk
weigt_crt
seal_no
loadcrt
from
ztripdetail
into table
l_tab_ztripdetail
for all entries in
l_tab_ztripheader
where
tripno = l_tab_ztripheader-tripno .
*Processing logic....
sort l_tab_ztripdetail by tripno.
loop at l_tab_ztripdetail into l_wa_ztripdetail.
MOVE-CORRESPONDING l_wa_ztripdetail TO l_wa_final.
read table l_tab_ztripheader into l_wa_ztripheader
with key
tripno = l_wa_ztripdetail-tripno.
if sy-subrc = o.
MOVE-CORRESPONDING l_wa_ztripheader TO l_wa_final.
endif.
append l_wa_final to e_t_data.
endif.
clear: l_wa_ztripheader,
l_wa_ztripdetail,
l_wa_final.
endloop.
‎2008 Feb 25 7:36 AM
Hi
Do the following:
Loop at <itab1> into <wa1>
Read Table <itab2> into <wa2> with key <key of itab2> =
<wa1>-<key of itab1>.
If sy-subrc = 0.
<wa3>-<field1> = <wa2>-<field1>
<wa3>-<field2> = <wa2>-<field2>.
....
append <wa3> to <itab3>
Endif.
Endloop
Thanks
Vijay
PLZ reward points if helpful
‎2008 Feb 25 7:39 AM
Hi,
Use the fallowing syntax.
loop at it_itab1 into wa_itab1.
read table it_itab2 into wa_itab2 with key field1 eq wa_itab1-field1.
if sy-subrc = 0.
if wa_itab1 = wa_itab2.
wa_itab3 = wa_itab1.
append wa_itab3 to it_itab3.
clear: wa_itab1, wa_itab2, wa_itab3.
endif.
endif.
Reward if it is useful.
Regards..
‎2008 Feb 25 10:35 AM
hi, try this code.
TYPES:BEGIN OF st_kna1,
kunnr TYPE kunnr,
name1 TYPE name1,
land1 TYPE land1,
ort01 TYPE ort01,
END OF st_kna1.
TYPES:BEGIN OF st_kna11,
kunnr TYPE kunnr,
land1 TYPE land1,
END OF st_kna11.
TYPES:BEGIN OF st_kna111,
kunnr TYPE kunnr,
name1 TYPE name1,
land1 TYPE land1,
ort01 TYPE ort01,
END OF st_kna111.
DATA:it_kna1 TYPE STANDARD TABLE OF st_kna1 WITH HEADER LINE,
wa_kna1 TYPE st_kna1,
itab TYPE STANDARD TABLE OF st_kna11 WITH HEADER LINE,
wa_itab TYPE st_kna11,
itab2 TYPE STANDARD TABLE OF st_kna111 WITH HEADER LINE,
wa_itab2 TYPE st_kna111,
kunnr TYPE kna1-kunnr,
v_lines type i.
SELECT-OPTIONS:cust FOR kunnr.
SELECT kunnr land1 name1 ort01 FROM kna1 INTO TABLE it_kna1 WHERE kunnr IN cust.
Loop at it_kna1 into wa_kna1.
move-corresponding wa_kna1 to wa_itab.
append wa_itab to itab.
clear : wa_kna1 , wa_itab.
endloop.
Loop at itab into wa_itab.
move-corresponding wa_itab to wa_itab2.
append wa_itab2 to itab2.
clear : wa_itab2 , wa_itab.
endloop.
Loop at itab2.
write : / itab2-kunnr , itab2-land1.
endloop.
Regards,
kavitha.k
‎2008 Feb 25 10:50 AM
Hi,
You have three internal tables i.e it_itab, it_jtab, it_final.
now you have data in first internal table as well as second internal table and now you want to move the equalaent records to final internal table .
pleaes follow the below code.
see we have feilds in first internal table it_itab is
f1
f2
f3
The fields in the second internal table is
f4
f5
f6
The fields in the final internal table is
f1
f2
f3
f4
f5
f6
now you want to move data from first and second to final internal table.
source destination
f1----
>f1
f2----
>f2
f3----
>f3
f4----
>f4
f5----
>f5
f6----
>f6
i = 1.
loop at it_jtab.
read table it_itab index i.
read table it_jtab index i.
move it_final-f1 = it_itab-f1.
it_final-f2 = it_itab-f2.
it_final-f3 = it_itab-f3.
it_final-f4 = it_jtab-f4.
it_final-f5 = it_jtab-f5.
it_final-f6 = it_jtab-f6.
endloop.
I think it is help ful to you,
Regards,
swami.
‎2008 Feb 26 4:42 AM
itab1,itab2,itab3 are internal tables.
we want to move itab1,itab2 common fields to itab3.
loop at itab1[] to itab1.
read table itab2[] into itab2 with key fieldno =itab1-fieldno.
move itab1-fieldno to itab3-fieldno.
move itab2-fieldno2 to itab3-fieldno2.
append itab3.
endloop.
loop at itab3[] into itab3.
write:/ itab3.
endloop.
do in this way we get the common records in itab1 and itab2 in itab3.
‎2008 Mar 28 3:55 PM
Hey ppl,
i guess the question was already answered before just wanted to give a simplified example so that it is understood easily
REPORT Z_PRGM_TRY_READ NO STANDARD PAGE HEADING.
TABLES : MARA , MARD.
SELECT-OPTIONS : S_MATNR FOR MARA-MATNR.
TYPES : BEGIN OF LT_MARA ,
MATNR LIKE MARA-MATNR ,
ERSDA LIKE MARA-ERSDA ,
MBRSH LIKE MARA-MBRSH ,
END OF LT_MARA .
DATA : TT_MARA TYPE STANDARD TABLE OF LT_MARA INITIAL SIZE 0 ,
WA_MARA TYPE LT_MARA .
TYPES : BEGIN OF LT_MARD ,
MATNR LIKE MARD-MATNR ,
WERKS LIKE MARD-WERKS ,
LGORT LIKE MARD-LGORT ,
PSTAT LIKE MARD-PSTAT ,
END OF LT_MARD.
DATA : TT_MARD TYPE STANDARD TABLE OF LT_MARD INITIAL SIZE 0 ,
WA_MARD TYPE LT_MARD.
TYPES : BEGIN OF LT_FINAL ,
MATNR LIKE MARA-MATNR ,
ERSDA LIKE MARA-ERSDA ,
MBRSH LIKE MARA-MBRSH ,
WERKS LIKE MARD-WERKS ,
LGORT LIKE MARD-LGORT ,
PSTAT LIKE MARD-PSTAT ,
END OF LT_FINAL .
DATA : TT_FINAL TYPE STANDARD TABLE OF LT_FINAL INITIAL SIZE 0 ,
WA_FINAL TYPE LT_FINAL .
SELECT MARA~MATNR
ERSDA
MBRSH
INTO CORRESPONDING FIELDS OF TABLE TT_MARA FROM MARA WHERE MARA~MATNR IN S_MATNR .
SELECT MARD~MATNR
WERKS
LGORT
PSTAT
INTO CORRESPONDING FIELDS OF TABLE TT_MARD FROM MARD
FOR ALL ENTRIES IN TT_MARA
WHERE MATNR = TT_MARA-MATNR.
LOOP AT TT_MARA INTO WA_MARA.
READ TABLE TT_MARD INTO WA_MARD WITH KEY MATNR = WA_MARA-MATNR .
IF SY-SUBRC = 0.
WA_FINAL-MATNR = WA_MARA-MATNR .
WA_FINAL-ERSDA = WA_MARA-ERSDA.
WA_FINAL-MBRSH = WA_MARA-MBRSH.
WA_FINAL-WERKS = WA_MARD-WERKS.
WA_FINAL-LGORT = WA_MARD-LGORT.
WA_FINAL-PSTAT = WA_MARD-PSTAT.
APPEND WA_FINAL TO TT_FINAL.
CLEAR WA_FINAL.
ENDIF.
ENDLOOP.
LOOP AT TT_FINAL INTO WA_FINAL.
WRITE : / WA_FINAL-MATNR , WA_FINAL-ERSDA , WA_FINAL-MBRSH , WA_FINAL-WERKS ,
WA_FINAL-LGORT , WA_FINAL-PSTAT.
ENDLOOP.