abap 如何得到内表中不重复的记录。

我的内表中好几个字段都一直在重复,我需要取出单个的就行。 因为刚开始学,还希望大家能够多多帮忙,谢谢了。

1.循环你的内表到工作区: wa
2. copy 你的内表到另一个一样的内表: itab_copy
3. delete itab_copy where f1 <> wa-f1 and f2 <> wa-f2 ...
4. 检查itab_copy剩余条数,如果等于1,那么说明这是条不重复的记录,如果>1那么是重复的
5.如果不重复append 到一个结果表中

循环结束,你就得到了所有不重复的记录。
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-12-14
用去重语法就行了
首先进行排序,用语法
SORT ITAB(内表名) BY 重复字段名.
DELETE ADJACENT DUPLICATES FROM itab(内表名)
该语法用于去除内表中重复的数据(删除的条件是相临的数据重复,所以需要先以重复字段排序,使相同字段变得相临),不知道是否能解决你的问题
第2个回答  2012-12-14
用关键字DELETE DUPLICATE ADJACENT FROM IT_TAB,想要比较某几个字段就加上comparing,如果后面不跟字段名将会判断所有字段是否重复,你可以F1看下它具体的意思。
第3个回答  2012-12-05
1. 先按照你关心的那几个字段排序.
2. 用 DELETE DUPLICATE ADJACENT FROM IT_TAB COMPARING 字段1, 字段X...
这里的字段1到字段X就是你排序的那几个字段.

abap 如何得到内表中不重复的记录。
1.循环你的内表到工作区: wa 2. copy 你的内表到另一个一样的内表: itab_copy 3. delete itab_copy where f1 <> wa-f1 and f2 <> wa-f2 ...4. 检查itab_copy剩余条数,如果等于1,那么说明这是条不重复的记录,如果>1那么是重复的 5.如果不重复append 到一个结果表中 循环结束...

ABAP报表数据处理:内表数据汇总COLLECT和AT END OF、AT*
ABAP对内表插入数据有3种:APPEND,COLLECT,INSERT。 1) 要计算数字字段之和或要确保内表中没有出现重复条目,使用 COLLECT 语句,它根据标准关键字处理行(将关键字相同的其他数字字段值汇总)。 2)要在内表现有行之前插入新行,请使用 INSERT 语句。 3)要将内表条目内容复制到另一个内表...

ABAP基础知识 内表汇总数据的方式
每种方法各有特点:COLLECT适用于关键字和指标的统计,但需要清空无关字段;AT NEW语句要求字段在内表前面且排序,位置可调整;LOOP AT GROUP方式无需排序,但性能略逊;READ哈希表则通过定义哈希内表实现,灵活性较高。在数据准备阶段,比如统计内表LT_DATA中MATNR字段,目标是将统计结果汇总到LT_SUM,...

ABAP基础知识 内表汇总数据的方式
方式一: AT NEW语句 - 当您需要对内表进行排序并定位特定位置时,AT NEW语句是首选。但请注意,这种方法可能会影响性能,特别是当需要清空无关字段时。 方式二: LOOP AT GROUP - 无需预先排序,但性能可能不如其他方法,且仅取第一行数据,适用于不需要所有记录的情况。 方式三: COLLECT语句 -...

abap中 内表的问题
select 后面的字段如果比into table后面的字段多,程序运行的时候就会Dump掉,这时候你需要用SELECT XXX INTO CORRESPONDING FIELDS OF TABLE YYY, 但是这时候你需要select后面的字段名要与table后面的内表中的字段名一一对应。如果用这个语法,字段名不对应的就没有值。如果select后的字段与into table...

SAP ABAP 查询一个表中是否存在重复数据
可以具体点不。比如,对内表有语法delete adjacent duplicates from itable

关于abap中inner join 还有for all entries in 的问题~各位大神来帮...
当两个表不能用Inner Join的时候,用 for all entries in T_TEMP:1. 使用该语句前,必须对T_TEMP按Key排序,并删除重复项。2.使用该语句,对于最后得出的结果集系统会自动删除重复行。因此如果你要保留重复行记录时,记得在SELECT语句中添加足够键值项目(有必要时,增加全部键值项目),以保 证...

ABAP中,想用内表A某一字段abc的值,替换另一内表B字段xyz原有的值,请问...
read table itab_B into wa_B index sy-tabix.if sy-subrc eq 0.wa_B-xyz = wa_A-abc.modify itab_B from wa_B index sy-tabix transporting xyz.endif.endloop.ABAP中对矩阵运算就是循环,然后按照字段名字来加减乘除运算,或者水平较高可以考虑用循环或者按照index直接读取表来定位行,用...

abap怎样抽取数据到内表? 顺便想求教关于ABAP程序执行效率和优化_百 ...
定义一个内表,然后按照内表中的字段进行select into到内表中。例如:data:begin of gt_data occurs 0,matnr like mard-matnr,werks like mard-werks,lgort like mard-lgort,labst like mard-labst,end of gt_data.上面的表示一个内表gt_data定义出来了。然后我们在把对应的数据提取出来,select...

ABAP 如何读取无表头的内表的数据呢?
假如你的内表是GT_ITAB,定义一个与内表结构相同的结构WA_ITAB read和loop的时候 通过INTO将该行内表数据给到改结构中,再对结构用数据进行操作 READ GT_ITAB INTO WA_ITAB INDEX 1.LOOP AT GT_ITAB INTO WA_ITAB.……ENDLOOP.

相似回答