‎2008 May 05 5:04 AM
Hi
i need to combain it_mara it_marc it_makt it_zmpkg fields into one internal table. following is my code
pls help me.
SELECT mandt matnr meins laeda aenam
FROM mara
INTO TABLE it_mara
WHERE matnr IN s_matnr.
IF NOT it_mara[] IS INITIAL.
SELECT matnr werks
FROM marc
INTO TABLE it_marc
FOR ALL ENTRIES IN it_mara
WHERE matnr = it_mara-matnr
AND werks = p_werks.
SELECT matnr maktx
FROM makt
INTO TABLE it_makt
FOR ALL ENTRIES IN it_mara
WHERE matnr = it_mara-matnr.
SELECT matnr zppqt zspqt zpmqt_3
INTO TABLE it_zmpkg
FROM zmpkg
FOR ALL ENTRIES IN it_mara
WHERE matnr = it_mara-matnr.
ENDIF.
‎2008 May 05 5:18 AM
Hi ,
see below.
data : begin of it_final occurs 1,
mandt type mara-mandt,
meins type mara-meins,
laeda type mara-laeda,
aenam type mara-menam,
werks type marc-werks,
maktx type marc-maktx,
zppqt type zmpkg-zppqt,
zspqt type zmpkg-zspqt,
zspmqt_3 type zmpkg-zspmqt_3,
end of it_final.
loop at it_mara.
read table it_marc with key matnr = it_mara-matnr.
if sy-subrc eq 0.
read table it_makt with key matnr = it_mara-matnr.
if sy-subrc eq 0.
read table it_zmpkg with key matnr = it_mara-matnr.
if sy-subrc eq 0.
it_final-mandt = it_mara-mandt.
it_final-meins = it_mara-meins.
it_final-laeda = it_mara-laeda.
it_final-aenam = it_mara-aenam.
it_final-werks = it_marc-werks.
it_final-zppqt = it_zmpkg-zppqt.
it_final-zspqt = it_zmpkg-zspqt.
it_final-zpmqt_3 = it_zmpkg-zpmqt_3.
append it_final.
endif.
endif.
endif.
endloop.
Regars,
Vishvesh.
if helpful , rewards it.
‎2008 May 05 5:13 AM
Hi,
use MOVE or MOVECORRESPONDING Statement.
you can move all the fields in to one internal table.
Regards,
Narasimha.
‎2008 May 05 5:14 AM
hi,
do this way ..
SELECT mandt matnr meins laeda aenam
FROM mara
INTO TABLE it_mara
WHERE matnr IN s_matnr.
IF NOT it_mara[] IS INITIAL.
SELECT matnr werks
FROM marc
INTO TABLE it_marc
FOR ALL ENTRIES IN it_mara
WHERE matnr = it_mara-matnr
AND werks = p_werks.
SELECT matnr maktx
FROM makt
INTO TABLE it_makt
FOR ALL ENTRIES IN it_mara
WHERE matnr = it_mara-matnr.
SELECT matnr zppqt zspqt zpmqt_3
INTO TABLE it_zmpkg
FROM zmpkg
FOR ALL ENTRIES IN it_mara
WHERE matnr = it_mara-matnr.
loop at it_mara.
clear : it_marc, it_makt, it_zmpkg.
it_final-matnr = it_mara-matnr.
it_final-meins = it_mara-meins.
it_final-laeda = it_mara-laeda.
it_final-aenam = it_mara-aenam.
read table it_marc with key matnr = it_mara-matnr and
werks = p_werks.
if sy-subrc = 0.
it_final-werks = it_marc-werks.
endif.
read table it_makt with key matnr = it_mara-matnr.
if sy-subrc = 0.
it_final-maktx = it_makt-maktx.
endif.
read table it_zmpkg with key matnr = it_mara-matnr.
if sy-subrc = 0.
it_final-zppqt = it_zmpkg-zppqt.
it_final-zspqt = it_zmpkg-zspqt.
it_final-zpmqt_3 = it_zmpkg-zpmqt_3.
endif.
append it_final.
clear it_final.
endloop.
‎2008 May 05 5:16 AM
SELECT mandt matnr meins laeda aenam
FROM mara
INTO TABLE it_mara
WHERE matnr IN s_matnr.
loop at it_mara into wa_mara.
move-corresponding wa_mara to wa_final.
read table it_marc into wa_marc with key matnr = wa_mara-matnr.
if sy-subrc eq 0.
move-corresponding wa_marc to wa_final.
endif.
read table it_makt into wa_makt with key matnr = wa_mara-matnr.
if sy-subrc eq 0.
move-corresponding wa_marc to wa_final.
endif.
read table it_zmpkg into wa_zmpkg with key matnr = wa_mara-matnr.
if sy-subrc eq 0.
move-corresponding wa_marc to wa_final.
endif.
append wa_final to it_final.
endloop.
Regards
Kannaiah
‎2008 May 05 5:18 AM
Hi
You need to join three tables mara , marc , makt through inner join or you can create a view of these three tables...
‎2008 May 05 5:18 AM
Hi ,
see below.
data : begin of it_final occurs 1,
mandt type mara-mandt,
meins type mara-meins,
laeda type mara-laeda,
aenam type mara-menam,
werks type marc-werks,
maktx type marc-maktx,
zppqt type zmpkg-zppqt,
zspqt type zmpkg-zspqt,
zspmqt_3 type zmpkg-zspmqt_3,
end of it_final.
loop at it_mara.
read table it_marc with key matnr = it_mara-matnr.
if sy-subrc eq 0.
read table it_makt with key matnr = it_mara-matnr.
if sy-subrc eq 0.
read table it_zmpkg with key matnr = it_mara-matnr.
if sy-subrc eq 0.
it_final-mandt = it_mara-mandt.
it_final-meins = it_mara-meins.
it_final-laeda = it_mara-laeda.
it_final-aenam = it_mara-aenam.
it_final-werks = it_marc-werks.
it_final-zppqt = it_zmpkg-zppqt.
it_final-zspqt = it_zmpkg-zspqt.
it_final-zpmqt_3 = it_zmpkg-zpmqt_3.
append it_final.
endif.
endif.
endif.
endloop.
Regars,
Vishvesh.
if helpful , rewards it.
‎2008 May 05 5:19 AM
Hi
data : begin of it_final occurs 1,
mandt type mara-mandt,
meins type mara-meins,
laeda type mara-laeda,
aenam type mara-menam,
werks type marc-werks,
maktx type marc-maktx,
zppqt type zmpkg-zppqt,
zspqt type zmpkg-zspqt,
zspmqt_3 type zmpkg-zspmqt_3,
end of it_final.
loop at it_mara.
read table it_marc with key matnr = it_mara-matnr.
if sy-subrc eq 0.
read table it_makt with key matnr = it_mara-matnr.
if sy-subrc eq 0.
read table it_zmpkg with key matnr = it_mara-matnr.
if sy-subrc eq 0.
it_final-mandt = it_mara-mandt.
it_final-meins = it_mara-meins.
it_final-laeda = it_mara-laeda.
it_final-aenam = it_mara-aenam.
it_final-werks = it_marc-werks.
it_final-zppqt = it_zmpkg-zppqt.
it_final-zspqt = it_zmpkg-zspqt.
it_final-zpmqt_3 = it_zmpkg-zpmqt_3.
append it_final.
endif.
endif.
endif.
endloop.
Regards,
Vishvesh
‎2008 May 05 5:25 AM
Hi,
Create an Internal table it_main with the combination of all the fields of it_mara it_marc it_makt it_zmpkg and then use first internal table it_mara.
sort it_mara by matnr.
sort it_marc by matnr.
sort it_makt by matnr.
sort it_zmpkg by matnr.
loop at it_mara.
read table it_marc with key matnr = it_main-matnr.
read table it_makt with key matnr = it_main-matnr.
read table it_zmpkg with key matnr = it_main-matnr.
it_main-matnr = it_mara-matnr.
(like this write code for other fields of it_mara)
it_main-werks = it_marc-werks.
it_main-maktx = it_makt-maktx.
it_main-zppqt = it_zmpkg-zppqt.
(like this write code for other fields of it_zmpkg)
append it_main.
endloop.
Thanks,
Arunprasad.P
Reward if useful.
‎2008 May 05 5:26 AM
Hi Kumar K,
DATA : BEGIN OF WA_FINAL,
MANDT LIKE MARA-MANDT,
MATNR LIKE MARA-MATNR,
MEINS LIKE MARA-MEINS,
LAEDA LIKE MARA-LAEDA,
AENAM LIKE MARA-AENAM,
WERKS LIKE MARC-WERKS,
MAKTX LIKE MAKT-MAKTX,
ZPPQT LIKE ZPPQT,
ZSPQT LIKE ZSPQT,
ZPMQT_3 LIKE ZPMQT_3,
END OF WA_FINAL,
BEGIN OF WA_MARA,
MANDT LIKE MARA-MANDT,
MATNR LIKE MARA-MATNR,
MEINS LIKE MARA-MEINS,
LAEDA LIKE MARA-LAEDA,
AENAM LIKE MARA-AENAM,
END OF WA_MARA,
BEGIN OF WA_MAKT,
MATNR LIKE MAKT-MATNR,
MAKTX LIKE MAKT-MAKTX,
END OF WA_MAKT,
BEGIN OF WA_MARC,
MATNR LIKE MARC-MATNR,
WERKS LIKE MARC-WERKS,
END OF WA_MARC,
BEGIN OF WA_ZMPKG,
ZPPQT LIKE ZPPQT,
ZSPQT LIKE ZSPQT,
ZPMQT_3 LIKE ZPMQT_3,
END OF WA_ZMPKG.
DATA : IT_MARA LIKE STANDARD TABLE OF WA_MARA WITH HEADER LINE,
IT_FINAL LIKE STANDARD TABLE OF WA_FINAL WITH HEADER LINE,
IT_MAKT LIKE STANDARD TABLE OF WA_MAKT WITH HEADER LINE,
IT_MARC LIKE STANDARD TABLE OF WA_MARC WITH HEADER LINE,
IT_ZMPKG LIKE STANDARD TABLE OF WA_ZMPKG WITH HEADER LINE.
SELECT mandt matnr meins laeda aenam
FROM mara
INTO TABLE it_mara
WHERE matnr IN s_matnr.
IF NOT it_mara[] IS INITIAL.
SELECT matnr werks
FROM marc
INTO TABLE it_marc
FOR ALL ENTRIES IN it_mara
WHERE matnr = it_mara-matnr
AND werks = p_werks.
SELECT matnr maktx
FROM makt
INTO TABLE it_makt
FOR ALL ENTRIES IN it_mara
WHERE matnr = it_mara-matnr.
SELECT matnr zppqt zspqt zpmqt_3
INTO TABLE it_zmpkg
FROM zmpkg
FOR ALL ENTRIES IN it_mara
WHERE matnr = it_mara-matnr.
ENDIF.
LOOP AT IT_MARA.
IT_FINAL-MANDT = IT_MARA-MANDT.
IT_FINAL-MATNR = IT_MARA-MATNR.
IT_FINAL-MEINS = IT_MARA-MEINS.
IT_FINAL-LAEDA = IT_MARA-LAEDA.
IT_FINAL-AENAM = IT_MARA-AENAM.
READ TABLE IT_MARC WITH KEY MATNR = IT_MARA-MATNR.
IF SY-SUBRC = 0.
IT_FINAL-WERKS = IT_MARC-WERKS.
ENDIF.
READ TABLE IT_MAKT WITH KEY MATNR = IT_MARA-MATNR.
IF SY-SUBRC = 0.
IT_FINAL-MAKTX = IT_MAKT-MAKTX.
ENDIF.
READ TABLE IT_ZMPKG WITH KEY MATNR = IT_MARA-MATNR.
IF SY-SUBRC = 0.
IT_FINAL-ZPPQT = IT_ZMPKG-ZPPQT.
IT_FINAL-ZSPQT = IT_ZMPKG-ZSPQT.
IT_FINAL-ZPMQT_3 = IT_ZMPKG-ZPMQT_3.
ENDIF.
APPEND IT_FINAL.
CLEAR : IT_FINAL, IT_MARA , IT_MAKT, IT_MARC , IT_ZMPKG.
ENDLOOP.
now IT_FINAL table contains the final data which you want...
Hope it will solve your problem
Reward points if useful...
Thanks & Regards
ilesh 24x7