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

some querry

Former Member
0 Likes
574

hi experts,

when i am retriving maktx from makt.but for some ebeln there is no matnr.

so i am not able to retrive maktx.for that i am using txz01 field in ekpo table.

but i m not able to write querry. so plz guide me.i am writing my querries below.

thaks.

SELECT ebeln lifnr aedat

INTO CORRESPONDING FIELDS OF TABLE t_ekko

FROM ekko

WHERE ebeln IN s_ebeln.

SELECT ekebeln epmatnr epmenge epnetpr ep~ebelp

INTO CORRESPONDING FIELDS OF TABLE t_ekpo

FROM ekko AS ek INNER JOIN ekpo AS ep

ON ekebeln = epebeln

WHERE ek~ebeln IN s_ebeln.

.

SELECT matnr maktx

FROM makt

INTO CORRESPONDING FIELDS OF TABLE t_makt

FOR ALL ENTRIES IN t_ekpo

WHERE matnr = t_ekpo-matnr

AND spras = 'EN'.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
548

Hi

fetch the TXZ01 fiewld also from EKPO(declare that in internal table).

SELECT ekebeln epmatnr eptxz01 epmenge epnetpr epebelp

INTO CORRESPONDING FIELDS OF TABLE t_ekpo

FROM ekko AS ek INNER JOIN ekpo AS ep

ON ekebeln = epebeln

WHERE ek~ebeln IN s_ebeln.

when reading all the above 3 internal tables into a final internal table

loop at t_ekko.

move-corresponding t_ekko to t_final.

read table t_ekpo .............

move-corresponding t_ekpo to t_final.

read table t_makt with key matnr = t_ekpo-matnr.

if sy-subrc = 0.

t_final-maktx = t_makt-maktx.

else.

t_final-maktx = t_ekpo-txz01.

endif.

append t_final.

clear t_final.

endloop.

Reward points if useful

Regards

Anji

hi experts,

when i am retriving maktx from makt.but for some ebeln there is no matnr.

so i am not able to retrive maktx.for that i am using txz01 field in ekpo table.

but i m not able to write querry. so plz guide me.i am writing my querries below.

thaks.

SELECT ebeln lifnr aedat

INTO CORRESPONDING FIELDS OF TABLE t_ekko

FROM ekko

WHERE ebeln IN s_ebeln.

SELECT ekebeln epmatnr epmenge epnetpr ep~ebelp

INTO CORRESPONDING FIELDS OF TABLE t_ekpo

FROM ekko AS ek INNER JOIN ekpo AS ep

ON ekebeln = epebeln

WHERE ek~ebeln IN s_ebeln.

.

SELECT matnr maktx

FROM makt

INTO CORRESPONDING FIELDS OF TABLE t_makt

FOR ALL ENTRIES IN t_ekpo

WHERE matnr = t_ekpo-matnr

AND spras = 'EN'.

4 REPLIES 4
Read only

Former Member
0 Likes
548

SELECT ek~ebeln

ek~lifnr

ek~aedat

ep~matnr

ep~menge

ep~netpr

ep~ebelp

ep~txz01

INTO CORRESPONDING FIELDS OF TABLE t_ekpo

FROM ekko AS ek INNER JOIN ekpo AS ep

ON ekebeln = epebeln

WHERE ek~ebeln IN s_ebeln.

.

SELECT matnr maktx

FROM makt

INTO CORRESPONDING FIELDS OF TABLE t_makt

FOR ALL ENTRIES IN t_ekpo

WHERE matnr = t_ekpo-matnr

AND spras = 'EN'.

loop at t_ekpo.

g_tabix = sy-tabix.

if not t_ekpo-matnr is initial.

read table t_makt with matnr = t_ekpo-matnr.

t_ekpo-maktx = t_makt-maktx.

else.

t_ekpo-maktx = t_ekpo-txz01.

endif.

modify t_ekpo index g_tabix.

endloop.

Read only

0 Likes
548

Hi suj,

i have done querry as u told me.

But there is one prb in o/p.

Actually i am not getting maktx in english,it is in 'D'(matnr=dpc1009)

i am writing my querry.

so plz tell me where i m wrong.

SELECT ebeln lifnr aedat

INTO CORRESPONDING FIELDS OF TABLE t_ekko

FROM ekko

WHERE ebeln IN s_ebeln.

SELECT ekebeln epmatnr epmenge epnetpr epebelp eptxz01

INTO CORRESPONDING FIELDS OF TABLE t_ekpo

FROM ekko AS ek INNER JOIN ekpo AS ep

ON ekebeln = epebeln

WHERE ek~ebeln IN s_ebeln.

SELECT matnr maktx

FROM makt

INTO CORRESPONDING FIELDS OF TABLE t_makt

FOR ALL ENTRIES IN t_ekpo

WHERE matnr = t_ekpo-matnr

AND spras = 'EN'.

LOOP AT t_ekpo.

IF t_ekpo-matnr IS NOT INITIAL.

READ TABLE t_makt WITH KEY matnr = t_ekpo-matnr .

IF sy-subrc = 0.

t_ekpo-maktx = t_makt-maktx.

ELSE.

t_ekpo-maktx = t_ekpo-txz01.

MODIFY t_ekpo INDEX v_inx.

ENDIF.

ENDIF.

ENDLOOP.

thanks.

Read only

Former Member
0 Likes
549

Hi

fetch the TXZ01 fiewld also from EKPO(declare that in internal table).

SELECT ekebeln epmatnr eptxz01 epmenge epnetpr epebelp

INTO CORRESPONDING FIELDS OF TABLE t_ekpo

FROM ekko AS ek INNER JOIN ekpo AS ep

ON ekebeln = epebeln

WHERE ek~ebeln IN s_ebeln.

when reading all the above 3 internal tables into a final internal table

loop at t_ekko.

move-corresponding t_ekko to t_final.

read table t_ekpo .............

move-corresponding t_ekpo to t_final.

read table t_makt with key matnr = t_ekpo-matnr.

if sy-subrc = 0.

t_final-maktx = t_makt-maktx.

else.

t_final-maktx = t_ekpo-txz01.

endif.

append t_final.

clear t_final.

endloop.

Reward points if useful

Regards

Anji

Read only

Former Member
0 Likes
548

SELECT ebeln lifnr aedat

INTO CORRESPONDING FIELDS OF TABLE t_ekko

FROM ekko

WHERE ebeln IN s_ebeln.

if sy-subrc eq 0 <OR> use if not t_ekko[] is initial -- it's amust when u r using for all entries...

SELECT ekebeln epmatnr epmenge epnetpr epebelp ep txz01

INTO CORRESPONDING FIELDS OF TABLE t_ekpo

FROM ekko AS ek INNER JOIN ekpo AS ep

ON ekebeln = epebeln

WHERE ek~ebeln IN s_ebeln.

.

SELECT matnr maktx

FROM makt

INTO CORRESPONDING FIELDS OF TABLE t_makt

FOR ALL ENTRIES IN t_ekpo

WHERE matnr = t_ekpo-matnr

AND spras = 'EN'.

now in your logic use the logoc.

if t_ekpo-matnr is initial.

t_makt-maktx = t_ekpo- txz01.

else.

read t_makt where matnr eq t_ekpo-matnr

endif...

hope this will help...