对循环中的一列求和....分配

问题描述

我正在尝试对内部表中一列的所有值求和。 我有以下内容

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中。

我已经尝试使用collectsum语句,但是由于字段符号而出现错误

我该怎么办?

解决方法

这应该有效

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]

没有循环,没有字段符号。简单,纯净而有效。