Hi Ravi,
Use following code.
PARAMETERS p_bukrs TYPE bukrs.
TYPES: BEGIN OF y_mara,
matnr TYPE matnr, "Material number
mtart TYPE mtart, "Material type
meins TYPE meins, "Base Unit of Measure
END OF y_mara.
data: lt_mara TYPE TABLE OF y_mara,
ls_mara like LINE OF lt_mara.
TYPES: BEGIN OF y_afko,
aufnr TYPE aufnr, "Order Number
gltrp TYPE co_gltrp, "Basic finish date
gamng TYPE gamng, "Total order quantity
plnbez TYPE matnr, "Material Number
plnty TYPE plnty, "Task List Type
plnnr TYPE plnnr, "Key for Task List Group
plnal TYPE plnal, "Group Counter
END OF y_afko.
data: lt_afko TYPE HASHED TABLE of y_afko
with unique key AUFNR,
t_afko TYPE STANDARD TABLE OF y_afko,
ls_afko type y_afko.
SELECT matnr "Material number
mtart "Material type
meins "Base Unit of Measure
FROM mara
INTO TABLE lt_mara
%_HINTS ORACLE 'INDEX("MARA" "MARA~T")'.
IF lt_mara[] IS NOT INITIAL.
SELECT A~aufnr "Order Number
A~gltrp "Basic finish date
A~gamng "Total order quantity
A~plnbez "Material Number
A~plnty "Task List Type
A~plnnr "Key for Task List Group
A~plnal "Group Counter
FROM afko as A
JOIN aufk as B ON A~aufnr = B~aufnr
INTO TABLE lt_afko
WHERE B~bukrs = p_bukrs.
loop at lt_mara INTO ls_mara.
READ TABLE lt_afko INTO ls_afko
with key plnbez = ls_mara-matnr.
IF sy-subrc EQ 0.
APPEND ls_afko to t_afko.
ENDIF.
endloop.
IF lines( t_afko[] ) gt 0.
SORT t_afko BY aufnr.
ENDIF.
ENDIF.