`
evangxli
  • 浏览: 231761 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

ABAP 删除内表重复数据

 
阅读更多
内表要进行排序 然后删除重复行

SORT <内表> BY <字段> [ascending/descending].

DELETE ADJACENT DUPLICATES FROM <内表> COMPARING ALL FIELDS.




*&---------------------------------------------------------------------*
*&      Form  FM_BUTTON_PRT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM FM_BUTTON_PRT.
  LOOP AT IT_DATA INTO WA_DATA.
    IF WA_DATA-SEL = 'X'.
      WA_SELS-PUR_NUM  = WA_DATA-PUR_NUM.
      WA_SELS-CRT_DATE = WA_DATA-CRT_DATE.
      WA_SELS-VEND_NUM = WA_DATA-VEND_NUM.
      WA_SELS-PAY_KEY  = WA_DATA-PAY_KEY .
      WA_SELS-MAT_NUM  = WA_DATA-MAT_NUM .
      WA_SELS-PUR_TXT  = WA_DATA-PUR_TXT .
      WA_SELS-PLT_NUM  = WA_DATA-PLT_NUM .
      WA_SELS-STOR_LOC = WA_DATA-STOR_LOC.
      APPEND WA_SELS TO IT_SELS.
    ENDIF.
  ENDLOOP.
  LOOP AT IT_DATA INTO WA_DATA.
    IF WA_DATA-SEL = 'X'.
      WA_PURNM-PURNM   = WA_DATA-PUR_NUM.
      APPEND WA_PURNM TO IT_PURNM.
      SORT IT_PURNM BY PURNM ASCENDING.
      DELETE ADJACENT DUPLICATES FROM IT_PURNM COMPARING ALL FIELDS.
    ENDIF.
  ENDLOOP.
  CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
    EXPORTING
      FORMNAME           = 'ZXLI_TEST_002'
    IMPORTING
      FM_NAME            = L_FM_NAME
    EXCEPTIONS
      NO_FORM            = 1
      NO_FUNCTION_MODULE = 2
      OTHERS             = 3.
  CALL FUNCTION L_FM_NAME
    TABLES
      IT_DATA  = IT_SELS
      IT_PURNM = IT_PURNM.
  CLEAR IT_SELS[].

ENDFORM.                    "FM_BUTTON_PRT
分享到:
评论

相关推荐

    ABAP 常用语句 数据读取 删除 修改 等语句 常用语句ABAP

    - **删除重复项**: - 示例代码: ```abap SORT itab2 DESCENDING BY posnr datuv. DELETE ADJACENT DUPLICATES FROM itab2 COMPARING posnr. ``` - 解析:首先按照`posnr`和`datuv`字段降序排序表`itab2`,...

    ABAP Table表或结构的总结

    在ABAP语言中,Table是一种非常重要的数据类型,用于存储多个具有相同结构的数据项。Table可以视为一种特殊的数组,其中每个元素都是一个结构(Structure)。Table在ABAP中的应用非常广泛,几乎所有的业务逻辑处理...

    实例学SAP ABAP编程

    SAP ABAP提供了多种删除内表数据的方法: 1. `delete itab where name = 'northsnow'`:基于特定条件删除记录。 2. `delete itab index i`:使用索引i删除一行。 3. 使用`loop at`循环遍历内表并删除,如`loop at ...

    ABAP编程宝典(中文版)

    - **使用内表**:包括填充、读取、修改和删除内表中的数据。 - **填充内表**:向内表中添加数据。 - **读取内表**:从内表中检索数据。 - **更改和删除内表行**:更新或移除内表中的特定行。 - **内表排序**:按照...

    Abap基础学习文档11_读取并处理 数据库表.doc

    除了从数据库表中读取数据之外,还可以使用ABAP中的SQL语句来更改表中的数据。主要的操作包括插入新记录、更新现有记录和删除记录。 - **INSERT**:用于向数据库表中添加新记录。例如,向`MATERIAL`表中添加一条新...

    ABAP三月通

    - **内表**: ABAP中用于存储数据的集合,类似于数组,支持多种类型的索引和排序方式。 - **工作区**: 用于临时存储数据的区域,常用于循环处理数据时的中间结果存储。 ##### 8. 使用字段符号 - **字段符号**: 是一...

    初学ABAP的教程

    ##### 4.8 确定内表属性 查询内部表的属性,如行数等,可以使用`LOOP AT`或`COUNT`关键字,格式如下: ```abap COUNT &lt;table_variable&gt; INTO &lt;counter&gt;. ``` - `&lt;table_variable&gt;`: 内部表变量。 - `&lt;counter&gt;`: ...

    ABAP编程中提高执行效率的几个技巧

    (2)该语句会自动删除重复行,所以取数时尽量把主键都考虑上。例如: SELECT bukr_s bel_nr gja_h buzeishkzg wr bt FROM bseg INTO TABLE itab1 FOR ALL ENTRIES IN itab2 WHERE bel_nr = itab2-bel_nr AND bukr_...

    ABAP_Program_Tips

    - **概述**:介绍如何在 ABAP 中使用数据集。 - **用途**:存储和处理大量数据的有效方式。 - **3.4.4 WS_DOWNLOAD** - **概述**:使用 Web 服务下载文件。 - **用途**:实现跨系统的文件传输。 - **3.4.5 GUI...

    SAP ABAP Command Reference

    - **变量**:ABAP中的变量用于存储数据,可以定义不同类型的数据结构。 - **分支控制**:用于根据条件改变程序执行流程,例如IF-THEN-ELSE语句。 - **条件表达式**:用于计算布尔值,常用于IF语句中。 - **子程序**...

    abap练习题

    - **扩展内容**:ABAP Dictionary的组成部分(如数据元素、结构、透明表等)及其作用;如何使用SE11来查看和维护这些数据结构。 #### 12. 新建数据库表 - **知识点**:在SAP系统中创建自定义数据库表的过程。 - **...

    abap编程.doc

    - **UPDATE/DELETE指令**:用于更新或删除字典表中的数据。 #### 六、ABAP/4程序模块 模块化编程是ABAP的重要特性,包括宏块、包含程序、子程序等。 - **宏块**:用于定义可重复使用的代码段。 - **子程序**:...

    sap abap ibm初级入门资料(二)

    Select语句用于从这些表中检索数据,是ABAP编程中处理数据的基本手段。通过学习Select语句,开发者可以高效地获取和处理业务数据。 5. **Chapter 13:ABAP函数模块** 函数模块是ABAP中的可重用代码单元,它们封装...

    SAP Webdynpro for ABAP 宝典中文版

    - **表头操作**:学习如何添加(append)或删除(delete)表头元素,以适应不同的数据展示需求。 **案例七: Table: Group(Column & Row) 以及 firstActualRow, FirstVisiableRow** 在表格数据量较大时,对其进行...

    SAPABAP常用函数清单[参考].pdf

    APPL_LOG_INIT 函数模块用于检查指定的对象或子对象是否存在,并删除关联的数据在本地内存中。该函数模块使开发者能够快速地初始化日志系统,准备日志记录。 APPL_LOG_READ_DB 函数模块用于读取数据库中的日志记录...

    abap_basics.pdf

    - **内部表**: 内部表类似于数组,用于存储同质的数据集。 - **数据处理**: 学习如何使用INSERT、APPEND、READ、MODIFY、DELETE和LOOP命令来操作内部表。 **3.4 子程序与函数** - **FORM**: 介绍如何使用FORM命令...

    基于SAPR/3系统的ABAP语言OpenSQL应用.pdf

    - 内表操作:通过在ABAP程序中定义内表来暂存查询结果或作为数据处理的容器。 - 内联视图(Inline View):允许创建临时的数据库查询,用于子查询或特定的数据检索。 - 连接表(Joining tables):用于结合来自不同...

    ABAP4大全之老白_高_码_无_清_版.pdf

    - **数据类型和对象简介**:ABAP/4提供了多种数据类型,包括基本数据类型、结构化数据类型等。 - **数据类型**:了解各种数据类型的特点和用途。 - **基本数据类型 - 预定义的**:如字符型、数值型等,这些都是ABAP/...

    SAPABAP常用函数清单.pdf

    APPL_LOG_INIT检查指定的对象或子对象是否存在,并删除所有相关的本地内存数据。这在开始新的日志记录周期或需要清除旧日志数据时使用。 6. APPL_LOG_READ_DB 使用APPL_LOG_READ_DB,你可以根据选择条件从数据库中...

    DataServices性能优化及小技巧

    2. 注意事项:在进行记录筛选前务必进行排序,类似ABAP中删除内表重复记录的操作。 三、DS 中文字符长度处理 1. 当DS处理中文字符时,可能会出现与SAP R3或Oracle数据库格式不匹配的问题,导致错误。 2. 解决方案...

Global site tag (gtag.js) - Google Analytics