ABAP提取两个内表交集,该如何处理
发布时间:2010-06-06 17:05:50 文章来源:www.iduyao.cn 采编人员:星星草
ABAP提取两个内表交集
ABAP提取两个内表交集
我有注意到,SAP自带的函数:
CTVB_COMPARE_TABLES和BKK_COMPARE_TABLES;
似乎可以比较两个内表,得出第二个内表不同于第一个内表的部分(新增/删除了那些部分)
但是,具体的使用,还请有经验的朋友不吝赐教啊!
因为,我在测试数据时,发现这两个函数的效果不那么简单。
如果上述函数确实可以,提取两个内表不同部分,则我可以据此做两次比较,得到两个内表的交集。
所以,我先用另外一种方式解决了-自己写了一个提取两个内表交集的函数,供大家检阅:
*" IMPORTING
*" VALUE(ITAB1) TYPE INDEX TABLE
*" VALUE(ITAB2) TYPE INDEX TABLE
*" EXPORTING
*" VALUE(ITABSAME) TYPE INDEX TABLE
*"----------------------------------
field-symbols:
<S1>,
<S2>.
data:
L1 type i,
L2 type i.
assign local copy of initial line of:
ITAB1 to <S1>,
ITAB2 to <S2>.
describe: table ITAB1 lines L1,
table ITAB2 lines L2.
"对记录行数少的内表,执行第一层循环;
"在第二层循环中,找到对应记录,即可追加到结果内表;
"同时退出第二层循环,继续执行第一层循环的下一行
IF L1 <= L2.
LOOP AT ITAB1 INTO <S1>.
LOOP AT ITAB2 INTO <S2>.
IF <S1> EQ <S2>.
APPEND <S1> TO ITABSAME.
EXIT.
ENDIF.
ENDLOOP.
ENDLOOP.
ELSE.
LOOP AT ITAB2 INTO <S2>.
LOOP AT ITAB1 INTO <S1>.
IF <S1> EQ <S2>.
APPEND <S2> TO ITABSAME.
EXIT.
ENDIF.
ENDLOOP.
ENDLOOP.
ENDIF.
ENDFUNCTION.
另一个问题,想请教大家,在上面代码里,第二层循环是为了找出,第一层循环的当前记录,在第二个内表里是否存在;
所以,如果ABAP自带了,判断一个内表中,是否存在某个记录的函数的话,那第二层循环就可以省去,则上述函数执行效率也会成倍提升了。
------解决方案--------------------
不了解,但是帮你顶一下!!!
------解决方案--------------------
好像abap中自带有一个内表中是否存在某条记录的语句的。
比如
read table from <wa1> into <wa2> COMPARING all fields.
看sy-subrc是否为0,为0表示从第二个table找到了一条和第一个table相同的记录,你可以试一下
------解决方案--------------------
不错。。。。。。。。
------解决方案--------------------
read table <wa1> into <wa2> COMPARING all fields.
------解决方案--------------------
MARK!
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。
其他相似内容:
-
求救:安装MINI SAP失败!
如题。
怎么办啊?
安装之前已经把SQL2000 2005 VS.NET05 08全都卸载了的。
安装CD1的时候就开始报错...
-
谁有abap eclipse editor?
那位哥们有,可以进行资料交换。
------解决方案--------------------
这个现在只支持460,好像不支持640...
-
求助,关于t-code:sgen的问题!急~~~
昨天刚把sap ecc6装好了 。为了能够快速运行,事先准备用sgen编译一下
非常郁闷的是,在还没有开始...
-
sql查询语句中WHERE条件后面AND的个数
sql查询语句中WHERE条件后面AND的个数有没有限制啊!
------解决方案--------------------
...
-
【求助】SAP模块,学哪个模块未来发展比较顺利?
各位大侠,我是SAP新人。最近公司在培训,3周培训后要我们从PS,FI,CO,MM等中选择一个模...
-
站在十字路口
本人在一个快消公司做IT程序员,主要负责内部系统开发、报表开发、数据库维护等工作。现在公司要上SAP了,我也有幸参与...
-
alv field 是否可以进行日期选择
哪位达人知道怎么在ALV报表中实现 日期的选择,就像调整系统日期一样,不用手动收入
------解决方...
-
在sap中怎样获取字段所属的表
小弟是SAP初学者,在这里遇到一个问题,由于对sap内部表结构不是很了解,现在要根据一些字段获取所属的表...
-
ABAP list report 输出问题
小弟初学ABAP,苦难重重,望大侠门指点。两个问题:
第一,我做了一个list report,输出deliveray item 和invoi...
-
在SAP中怎么截取字符串
在SAP中怎么截取字符串
比如
DATA:STR(10) LIKE C VALUE '1234567890',
STR1(4) LIKE C.
我要取...