通知
清除所有

Collect和Sum的区别

RSS

(@sathish)
成员 主持人
加入:12个月前
帖子:1391
30/03/2021 17点

Collect和Sum的区别?


报价
(@sathish)
成员 主持人
加入:12个月前
帖子:1391
30/03/2021 17点

总和

当处理块中的内部表时开始与循环后得出结论ENDLOOP,和计算类型的所有字段的控制总数I F P并将它们放置在LOOP输出区域(内部表的标题行或显式指定的工作区)。

当你使用循环中的SUM对于显式指定的输出区域,此输出区域必须与内部表的行类型兼容。当使用LOOP处理已排序的提取时,组末尾的控制总数f将出现在字段SUM(f)中——如果f是类型I、f或P。

收集

收集用于创建唯一的或压缩的数据集。关键字段是内部表制表符的默认关键字段。

如果只使用COLLECT填充内部表,收集确保内部表不包含两个具有相同默认关键字段的条目。

如果内部表除了默认的关键字段外还包含数字字段,那么如果内部表已经包含具有相同关键字段的条目,那么这些数字字段的内容将被添加到一起。

如果使用内部表的默认键处理收集是空白,所有的值都加在第一行表中。

如果指定wa INTO,则要处理的条目将从显式指定的工作区域wa中获取。如果不是,它来自内部表制表符的标题行。

收集、该系统场SY-TABIX包含现有表项或新表项的索引,该索引具有与要处理的表项相匹配的默认关键字段。

收集可以创建唯一的或压缩的数据集,并应被精确地用于此目的。如果唯一性或压缩不重要,或者两个具有相同默认关键字段值的值不可能出现在您的特定任务中,您应该使用附加代替。然而,对于同样高效的唯一或压缩数据集,COLLECT是要使用的语句。

如果使用COLLECT处理表,还应该使用填满它。只有这样做,才能保证内部表实际上是唯一的或被压缩的,如上所述,并且COLLECT将非常高效地运行。

如果对显式指定的工作区域使用COLLECT,则它必须与内部表的行类型兼容。

收集允许您可以创建唯一的或汇总的数据集。系统首先尝试查找与表键对应的表项。键值可以从内部表制表符的标题行,或者从显式指定的工作区域获取。

如果系统找到一个条目,不属于表键的数字字段将被添加到现有条目的总和中。如果没有找到条目,系统会创建一个新条目。


回复报价
分享:
Baidu