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哈希表实现

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

总结

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

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

相关推荐
slacker-kian3 天前
[实践]-让 SAP 工程 Skill 脱离 opencode跑在自定义Agent 上
ai·llm·sap·agent·abap·adt·opencode
爱喝水的鱼丶3 天前
SAP-ABAP:MM 模块供应商主数据开发:字段扩展、分级管控与同步接口开发
开发语言·性能优化·接口·sap·abap·增强·经验交流
爱喝水的鱼丶5 天前
SAP-ABAP:SAP 权限控制深度解析:自定义程序与标准事务码的边界与协同
性能优化·sap·abap·权限·开发交流·交流学习
爱喝水的鱼丶7 天前
SAP-ABAP:MM 模块库存管理开发:出入库增强、批次管理与库存盘点功能开发
性能优化·sap·abap·增强·开发运维·经验交流·mm模块
goyeer8 天前
20.[SAP ABAP] DATA与TYPES异同
sap·abap·fico·fi·co·mm
爱喝水的鱼丶8 天前
SAP-ABAP:SAP MM 模块物料主数据批量导入与增强开发:字段扩展、校验逻辑与批量导入工具开发
开发语言·性能优化·sap·abap·增强·经验交流·mm
goyeer8 天前
21.[SAP ABAP] DATA关键字详解
sap·abap·fi·mm·opensql
ChampaignWolf12 天前
在 SAP S/4HANA 内部基于 ICF Handler 从零实现 ABAP MCP Server:架构、代码与踩坑实录
c++·架构·sap·abap·mcp
ChampaignWolf12 天前
YAAI 生态一周年:把 ABAP 变成 Agent 工具栈的开源组合拳
开源·abap·mcp·开源ai·yaai
爱喝水的鱼丶12 天前
SAP-ABAP:隐式/显式增强开发规范与避坑指南:10 类典型错误与运维方案
运维·性能优化·sap·abap·增强·经验交流