‎2009 Sep 01 10:36 AM
HI All,,
I have a internal table int with following fields matnr maktxd maktxe.
i have a field material in the selection screen.
i have to retrieve both the material description in english as well as DE.
I is there any optimized way to retrieve both the text from MAKT through a single query?
Tnx,
Joe
‎2009 Sep 01 10:39 AM
Hi
For the material (MATNR) fetch the corresponding description from MAKT.
While selecting use the criteria SPRAS = 'EN' or "DE'.
Regards
Ansari
‎2009 Sep 01 10:41 AM
Hi,
Table contains data in a single language.You cannot retrieve data from both languages with a single qurey.Try extract the data into a field and then convert the same into desired language.
Regards,
Vamshi
‎2009 Sep 01 10:50 AM
Hi,
when i checked my MARA table i can see for the same material description is mainatined in EN and FR..
SELECT *
FROM mara
INTO TABLE it_mara
where matnr = '000000000000000031'.
SELECT *
FROM makt
INTO TABLE it_makt
FOR ALL ENTRIES IN it_mara
WHERE matnr = it_mara-matnr
AND spras = 'EN'
OR spras = 'FR'.
Using this select stmnt i was able to fetch the data belonging to both the languages.
Regards
Ansari
‎2009 Sep 01 11:04 AM
Hi All,
This is my itab structure,
data : begin of itab ,
matnr like makt-matnr,
maktxd like makt-maktx, " Launguage english
maktxe like makt-maktx "Launguage german
end of itab.
i want to have it in a single table with a single select query bioth the english as well as german,
Tnx,
Joe
‎2009 Sep 01 11:14 AM
‎2009 Sep 01 12:13 PM
Hi, Try this.
data : begin of itab ,
matnr like makt-matnr,
maktxd like makt-maktx, " Launguage english
maktxe like makt-maktx "Launguage german
end of itab.
data : begin of it_desc ,
matnr like makt-matnr,
maktx like makt-maktx,
spras like makt-spras,
end of it_desc.
Select matnr maktx spras into table it_desc from makt where
matnr = 'Your parameter value'
AND spras in ( 'EN', 'DE' ).
Loop at it_desc.
Move it_desc-matnr to itab-matnr.
if it_desc-spras = 'EN'.
Move it_desc-maktx to itab-maktxd.
ELSE.
Move it_desc-maktx to itab-maktxe.
ENDIF.
append itab.
endloop.
Regds,
Senthil
Edited by: senthil kumar on Sep 1, 2009 4:44 PM
‎2009 Sep 01 10:43 AM
Hi Joe,
Check the below code for your requirement
data : begin of itab ,
matnr like makt-matnr,
maktx like makt-maktx,
end of itab.
Select matnr maktx into table itab from makt where spras in ( 'EN', 'DE' ).
Hope it shall be useful.
Regards
Santosh
‎2009 Sep 01 11:09 AM
Hi Jeo,
check the below code.
data : begin of itab ,
matnr like makt-matnr,
maktxd like makt-maktx, " Launguage english
maktxe like makt-maktx "Launguage german
end of itab.
data : wa_itab like itab.
select single matnr maktx into wa_itab from makt where
matnr eq "parameter" and
spras eq 'EN'.
select single maktx into wa_itab-maktx from maktx where
matnr eq "parameter" and
spras eq 'DE'.
append wa_itab to itab.
clear wa_itab.
Hope it shall be useful.
Regards
Santosh
‎2009 Sep 01 11:13 AM
Hi,
I dont think we can do it in one select statement..
Try the sample code given below..
TYPES: BEGIN OF ty_s_mara,
matnr TYPE matnr,
eng TYPE char50,
ger TYPE char50,
END OF ty_s_mara.
DATA it_mara TYPE STANDARD TABLE OF ty_s_mara.
DATA it_makt TYPE TABLE OF makt.
FIELD-SYMBOLS <gf_mara> TYPE ty_s_mara.
DATA ls_makt TYPE makt.
SELECT matnr
FROM mara
INTO TABLE it_mara
WHERE matnr = '000000000000000031'.
SELECT *
FROM makt
INTO TABLE it_makt
FOR ALL ENTRIES IN it_mara
WHERE matnr = it_mara-matnr
AND spras = 'EN'
OR spras = 'FR'.
LOOP AT it_mara ASSIGNING <gf_mara>.
LOOP AT it_makt INTO ls_makt WHERE matnr = <gf_mara>-matnr.
IF sy-tabix = 1.
MOVE ls_makt-maktx TO <gf_mara>-eng.
ELSE.
MOVE ls_makt-maktx TO <gf_mara>-ger.
ENDIF.
ENDLOOP.
ENDLOOP.
Regards
Ansari