Hi,
try this code, and you can edit it , don't forget to use collect statment.
TYPES: BEGIN OF wa1,
matnr TYPE matnr,
erdat TYPE erdat,
sum TYPE p DECIMALS 2,
END OF wa1.
DATA itab1 TYPE TABLE OF wa1 WITH EMPTY KEY.
DATA ls_wa1 TYPE wa1.
PARAMETERS month TYPE /cpd/pfp_dtr_month.
PARAMETERS year TYPE n LENGTH 4.
DATA erdat TYPE erdat.
DATA end TYPE erdat.
*select matnr sum( NETWR ) from vbap
* into TABLE itab1
* where ERDAT BETWEEN '20010101' and '20150101'
* GROUP BY matnr .
DATA lt_tab TYPE TABLE OF vbap.
IF year IS INITIAL AND month IS NOT INITIAL.
CONCATENATE '1999' month'01' INTO erdat.
CONCATENATE '2015' month '31' INTO end.
SELECT * FROM vbap
INTO TABLE lt_tab
WHERE erdat >= erdat
AND erdat <= end.
ELSEIF year IS NOT INITIAL AND month IS NOT INITIAL.
CONCATENATE year month '01' INTO erdat.
CONCATENATE year month '31' INTO end.
SELECT * FROM vbap
INTO TABLE lt_tab
WHERE erdat >= erdat
AND erdat <= end.
ENDIF.
DATA ls_tab TYPE vbap.
SORT lt_tab BY matnr .
LOOP AT lt_tab INTO ls_tab.
AT NEW matnr.
IF ls_tab-erdat+4(2) = erdat+4(2) " Month
AND ls_tab-erdat+4 = erdat+4.
" Collect
ELSE.
ENDIF.
ENDLOOP.
Regards
Ebrahim