abap中数据累加的问题
一个内表中有物料A和物料B,都产生了多笔的购买记录,我想把这些金额都累加起来,合并成一条物料的A的总金额,一条是物料B的总金额。这样该如何写。...
一个内表中有物料A和物料B,都产生了多笔的购买记录,我想把这些金额都累加起来,合并成一条物料的A的总金额,一条是物料B的总金额。这样该如何写。
展开
展开全部
COLLECT
同名字段合并,然后数字字段累加
同名字段合并,然后数字字段累加
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2012-05-10
展开全部
TYPES: BEGIN OF typ_data,
matnr TYPE matnr,
money TYPE p,
END OF typ_data.
DATA: itab_data TYPE STANDARD TABLE OF typ_data,
itab_sum TYPE STANDARD TABLE OF typ_data,
h_data TYPE typ_data,
h_sum TYPE typ_data.
* MAKE DAMI TEST DATA
h_data-matnr = 'A'.
h_data-money = 100.
APPEND h_data TO itab_data.
h_data-matnr = 'B'.
h_data-money = 150.
APPEND h_data TO itab_data.
h_data-matnr = 'A'.
h_data-money = 120.
APPEND h_data TO itab_data.
h_data-matnr = 'B'.
h_data-money = 200.
APPEND h_data TO itab_data.
* SORT BEFORE SUM
SORT itab_data BY matnr ASCENDING.
* SUM DATA
LOOP AT itab_data INTO h_data.
h_sum-money = h_sum-money + h_data-money.
AT END OF matnr.
h_sum-matnr = h_data-matnr.
APPEND h_sum TO itab_sum.
CLEAR h_sum.
ENDAT.
ENDLOOP.
BREAK-POINT."YOU CAN SEE THE SUM RESULT(A'S SUM MONEY,AND B'S)
matnr TYPE matnr,
money TYPE p,
END OF typ_data.
DATA: itab_data TYPE STANDARD TABLE OF typ_data,
itab_sum TYPE STANDARD TABLE OF typ_data,
h_data TYPE typ_data,
h_sum TYPE typ_data.
* MAKE DAMI TEST DATA
h_data-matnr = 'A'.
h_data-money = 100.
APPEND h_data TO itab_data.
h_data-matnr = 'B'.
h_data-money = 150.
APPEND h_data TO itab_data.
h_data-matnr = 'A'.
h_data-money = 120.
APPEND h_data TO itab_data.
h_data-matnr = 'B'.
h_data-money = 200.
APPEND h_data TO itab_data.
* SORT BEFORE SUM
SORT itab_data BY matnr ASCENDING.
* SUM DATA
LOOP AT itab_data INTO h_data.
h_sum-money = h_sum-money + h_data-money.
AT END OF matnr.
h_sum-matnr = h_data-matnr.
APPEND h_sum TO itab_sum.
CLEAR h_sum.
ENDAT.
ENDLOOP.
BREAK-POINT."YOU CAN SEE THE SUM RESULT(A'S SUM MONEY,AND B'S)
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我不想写代码了,你可以用COLLECT来很简单的实现你的这个需求,你按F1看下例子吧!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询