对于内表中有些数据需要进行一些合并求和的操作时,可以尝试用以下一些的语法进行逻辑处理。
注意:1.使用AT 语法一定要先排序;
2.在循环时要重新装进另一张表,不然数据会弄混。
1. collect
- collect 非数字字段内容相同的,将数字字段进行汇总。
DATA: BEGIN OF seats,
carrid TYPE sflight-carrid,
connid TYPE sflight-connid,
seatsocc TYPE sflight-seatsocc,
END OF seats.
DATA seats_tab LIKE HASHED TABLE OF seats
WITH UNIQUE KEY carrid connid.
SELECT carrid connid seatsocc
FROM sflight
INTO seats.
COLLECT seats INTO seats_tab.
ENDSELECT.
最省事的还是在定义数据结构的时候把数字字段定义好,可以直接合并累加。
2.AT END OF
Loop不能加where条件,在at 和 endat之间不能再使用loop语法。
AT NEW F.
…
ENDAT.
f是内表的中一个字段,当内表中f字段以及f左边的任何字段内容将要发生变化时,就是下一行循环的数据与当前的不一样