ITPUB??ì3
ITPUB论坛 » SAP R/3 » 系统开发及跨应用设置 » 大家来列举一下查找同一内表中重复记录的最优化的算法

标题: 大家来列举一下查找同一内表中重复记录的最优化的算法
离线 weddingmax
後輩


精华贴数 0
个人空间 0
技术积分 555 (3877)
社区积分 0 (651383)
注册日期 2005-10-7
论坛徽章:2
授权会员2008北京奥运纪念徽章:皮划艇静水    
      

发表于 2008-7-4 00:44 
大家来列举一下查找同一内表中重复记录的最优化的算法

现在有一个内表,其中有5个字段:
material    plant    xxxx    xxxxx     xxxxxxxx   (后面三个字段不重要)
内表中大概有几万条数据。
现在要求,找出改内表中 material   plant字段内容重复的数据。

(比如):
material     plant    xxxx    xxxxx     xxxxxxxx   (后面三个字段不重要)
mm_g_01   9001    ....      .......       ............
mm_g_02   9001    ....      .......       ............
mm_g_01   9001    ..        ....          .....
以上这个表的第一条和第三条重复。

怎么样找是比较优化的算法,大家给点思路啊(是找,不是删除哦)。


__________________
MM+ABAPer
只看该作者    顶部
离线 ryq0000
大庆


精华贴数 0
个人空间 50
技术积分 5794 (268)
社区积分 50198 (18)
注册日期 2004-11-19
论坛徽章:32
NBA季后赛纪念徽章     
      

发表于 2008-7-4 09:59 
只能循环找吧.没有啥好的了.


__________________
只看该作者    顶部
离线 king2127
动作要快


来自 GZ
精华贴数 0
个人空间 0
技术积分 442 (4927)
社区积分 191 (2781)
注册日期 2007-1-8
论坛徽章:4
八级虎吧徽章授权会员生肖徽章2007版:狗   
      

发表于 2008-7-4 10:09 
循环一次,利用另一个内表进行对比。


__________________
我终究没能飙得过那辆宝马,只能眼看着它在夕阳中绝尘而去,不是我的引擎不好,而是我的车链子掉了
只看该作者    顶部
离线 weddingmax
後輩


精华贴数 0
个人空间 0
技术积分 555 (3877)
社区积分 0 (651383)
注册日期 2005-10-7
论坛徽章:2
授权会员2008北京奥运纪念徽章:皮划艇静水    
      

发表于 2008-7-4 11:28 
目前想到比较好的办法是:
data cnt_flg type i.

sort it_material by material plant.
loop it_material into he_material.
  clear fnt_flg.
  at new plant.
     cnt_flg = cnt_flg + 1.
  endat.

  at end of plant.
     cnt_flg = cnt _flg + 1.
  endat.
endloop.

如果标志cnt_flg的结果不是1,那么它就是重复的纪录。如果标志为2。那么就没有和它重复的纪录。

不知道,大家有没有效率更高的方法,希望大家提出更多方案。
谢谢!


__________________
MM+ABAPer
只看该作者    顶部
离线 dreamgift



精华贴数 0
个人空间 0
技术积分 297 (7314)
社区积分 0 (1757382)
注册日期 2008-3-12
论坛徽章:0
      
      

发表于 2008-7-4 13:41 
怎么做都的LOOP.

[ 本帖最后由 dreamgift 于 2008-7-4 13:54 编辑 ]


只看该作者    顶部
离线 dreamgift



精华贴数 0
个人空间 0
技术积分 297 (7314)
社区积分 0 (1757382)
注册日期 2008-3-12
论坛徽章:0
      
      

发表于 2008-7-4 14:04 
这样应该不错.

[ 本帖最后由 dreamgift 于 2008-7-4 14:06 编辑 ]


只看该作者    顶部
离线 george_506
中级会员


精华贴数 0
个人空间 0
技术积分 705 (3045)
社区积分 1 (46860)
注册日期 2006-10-24
论坛徽章:5
玉兔2008北京奥运纪念徽章:沙滩排球2008北京奥运纪念徽章:皮划艇静水2008北京奥运纪念徽章:击剑ITPUB新首页上线纪念徽章 
      

发表于 2008-7-4 14:40 


QUOTE:
原帖由 weddingmax 于 2008-7-4 00:44 发表
现在有一个内表,其中有5个字段:
material    plant    xxxx    xxxxx     xxxxxxxx   (后面三个字段不重要)
内表中大概有几万条数据。
现在要求,找出改内表中 material   plant字段内容重复的数据。

(比如):
material     plant    xxxx    xxxxx     xxxxxxxx   (后面三个字段不重要)
mm_g_01   9001    ....      .......       ............
mm_g_02   9001    ....      .......       ............
mm_g_01   9001    ..        ....          .....
以上这个表的第一条和第三条重复。

怎么样找是比较优化的算法,大家给点思路啊(是找,不是删除哦)。

SORT ITAB BY material plant.
Delete  adjacent duplicates from itab comparing fileds material plant.


__________________
SAP: PP Module  / ABAPer
多学多问,一切皆来自于努力。
只看该作者    顶部
离线 weddingmax
後輩


精华贴数 0
个人空间 0
技术积分 555 (3877)
社区积分 0 (651383)
注册日期 2005-10-7
论坛徽章:2
授权会员2008北京奥运纪念徽章:皮划艇静水    
      

发表于 2008-7-4 18:31 


QUOTE:
原帖由 george_506 于 2008-7-4 14:40 发表



SORT ITAB BY material plant.
Delete  adjacent duplicates from itab comparing fileds material plant.

谢谢,但是这个做法应该是在删除重复的数据吧?
我想要不删除的方法。


__________________
MM+ABAPer
只看该作者    顶部
离线 microobj



精华贴数 0
个人空间 0
技术积分 2 (254758)
社区积分 0 (1867539)
注册日期 2008-7-25
论坛徽章:0
      
      

发表于 2008-9-7 20:17 
可用一条GROUP BY 的SQL语句,并使用HAVING条件:
select  material,  plant   from  tablename  group by material,  plant  having count(*)>1

[ 本帖最后由 microobj 于 2008-9-7 20:19 编辑 ]


只看该作者    顶部
离线 aaastop
初级会员



精华贴数 0
个人空间 0
技术积分 153 (12994)
社区积分 0 (451147)
注册日期 2005-6-4
论坛徽章:0
      
      

发表于 2008-9-9 00:00 
回复 #9 microobj 的帖子

这只能对实体表进行操作吧,可如果是内表呢?


只看该作者    顶部
相关内容


CopyRight 1999-2006 itpub.net All Right Reserved.
北京皓辰网域网络信息技术有限公司. 版权所有
E-mail:Webmaster@itpub.net
京ICP证:060528号 联系我们 法律顾问