ABAP内表汇总数据的方法汇总

ABAP内表汇总数据的方法汇总

本文主要介绍ABAP中使用内表统计的几种方式

四种统计方式

内表统计执行数据统计大致有下述几种方式, 这些方式本身没有优劣差异,根据实际情况选择一种使用就好.

COLLECT 语句实现

AT NEW 语句实现

LOOP AT GROUP 语句实现

READ 哈希表语句实现. SELECT SUM 也能汇总内表

数据准备

如图: 给出了内表定义及示例数据.

目标:原内表LT_DATA 结果按字段MATNR统计到内表LT_SUM中. 统计表中的WERKS 字留空或者保留第一行或最后一行的内容

COLLECT 语句实现

该语句的局限性: 目标内表中所有字段区分为关键字和指标(数字型).系统底层会是所有关键字创建临时哈希表,解决汇总的性能问题该方式另外的局限是: 不参与统计的字段必须清空.

AT NEW 语句实现

该语句的局限性: 参与统计的字段必须是内表前面的字段,并且需要先排序.如果统计结果中的地点需要放第一行或最后一行的地点, 可以通过特定逻辑实现.

LOOP AT GROUP实现

该语句无需排序,字段无需作为内表前面的字段, 但是性能比AT NEW 方式稍差.且无关字段只能使用第一行的.

备注: 如果统计表有多关键字,多关键字并列呈现即可

( MATNR = LW_GP-MATNR WERKS = LW_GP-WERKS ).

READ哈希表实现

需要定义一个哈希内表.循环内表读取哈希表.

总结

上述给出的四种常用的内表统计的方式.其中方式三的性能稍差,其它性能差不多. 实际应用中根据实际情况确定使用一种方式即可.

实际应用中,方式四使用更灵活. 方式一最简单,但是对汇总表结构要求较高.

相关推荐
HeathlX3 天前
ABAP-OO:(4)封装、继承、多态
abap
duangww4 天前
OPEN SQL去掉文本中间的空格
数据库·abap
HeathlX5 天前
SAP-Fiori:系列(5)Gateway ODATA (V2) CURD之Update
sap·abap
duangww5 天前
SAP订单费用报表
abap
HeathlX6 天前
SAP-Fiori:系列(3)Gateway ODATA (V2) CURD之Create
abap
HeathlX6 天前
SAP-Fiori:系列(4)Gateway ODATA (V2) CURD之Delete
sap·abap
戰皇Hermes8 天前
ABAP cl_document_bcs-用户权限不足导致正文内容变成附件txt
abap
duangww8 天前
SAP 生产订单组件修改
abap
HeathlX8 天前
SAP-Fiori:Gateway ODATA(V2)
abap
HeathlX8 天前
SAP-Fiori:Gateway ODATA (V2) CURD之Query
abap