我试图总结基于系统表ekbe的表中的特定字段。我是这样开始的:
REPORT zz_program3.
TABLES: ekbe.
TYPES: BEGIN OF tt_mati1,
ebeln LIKE ekbe-ebeln,
ebelp LIKE ekbe-ebelp,
bewtp LIKE ekbe-bewtp,
bwart LIKE ekbe-bwart,
menge LIKE ekbe-menge,
suma1 TYPE i,
END OF tt_mati1.
DATA: lt_mati1 TYPE STANDARD TABLE OF tt_mati1 WITH KEY elebn ebelp.
SELECT *
FROM ekbe
INTO CORRESPONDING FIELDS OF TABLE lt_mati1
WHERE ( bewtp = 'E' AND bwart = '101' ).
现在,我想对所有将出现的字段求和,例如:
<表类>EBELN EBELP BEWTP BWART 门格 tbody><<tr>450001122 01 E 101 5000 450001122 01 E 101 1000 450001122 01 E 101 1000 450001122 02 E 101 1000 450001122 02 E 101 2000 表类>
您不需要为此使用REDUCE或FOR组。您可以使用GROUP by子句在SQL语句中进行分组。
SELECT
ebeln,
ebelp
SUM( menge ) AS menge,
SUM( dmbtr ) AS suma1,
FROM ekbe
INTO CORRESPONDING FIELDS OF TABLE lt_mati1
WHERE ( bewtp = 'E' AND bwart = '101' )
GROUP BY ebeln, ebelp.
这将取EBELN和EBELP中具有相同值的所有行,并将它们与它们的MENGE和DMBTR之和压缩成一行。