问题描述
DATA: t2 TYPE TABLE OF komlfp.
FIELD-SYMBOLS: <t2_line> LIKE LINE OF t2.
LOOP AT t2 ASSIGNING <t2_line> WHERE contract = wa_view-num.
CLEAR: wa_talv-vol_fat_atual
wa_talv-vol_fat_atual = <t2_line>-kzwi6d.
ENDLOOP.
我试图做:
LOOP AT t2 ASSIGNING <t2_line> WHERE contract = wa_view-num.
CLEAR: wa_talv-vol_fat_atual
AT LAST.
SUM.
wa_talv-vol_fat_atual = <t2_line>-kzwi6d.
ENDAT.
ENDLOOP.
然后我收到消息:
“ SUM”语句在“ LOOP ... ASSIGNING ...”中是不允许的。
我想要的是对该循环内<t2_line>-kzwi6d
中的所有值求和,然后将其放入变量wa_talv-vol_fat_atual
中。
我已经尝试使用collect
和sum
语句,但是由于字段符号而出现错误。
我该怎么办?
解决方法
这应该有效
CLEAR: wa_talv-vol_fat_atual
LOOP AT t2 ASSIGNING <t2_line> WHERE contract = wa_view-num.
ADD <t2_line>-kzwi6d TO wa_talv-vol_fat_atual.
ENDLOOP.
ABAP可以执行许多操作,但有时仅使用简单的命令即可工作。
如果此LOOP
位于另一个LOOP
内,例如,这不是最有效的方法。如果您确实需要NUM
的所有不同值的总计。但是还有其他问题和答案可以帮助您解决问题。
现在可以使用内部表上的OpenSQL语法完成这些工作。
[0]
没有循环,没有字段符号。简单,纯净而有效。