| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3310 人关注过本帖
标题:表内有两条相同的纪录,如何找到和删除第一条
只看楼主 加入收藏
z_jiale
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2010-1-18
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:12 
表内有两条相同的纪录,如何找到和删除第一条
一个表内有两条关键字段相同的记录。第一条是错误的,第二条应保留。用循环语句能找到第二条相同的记录可以删除,但我要的是第二条保留。烦请老师指导一下。当然我应该改进录入程序不要产生此类情况。可有时避免不了的时候如突然故障只好重输数据时就容易出现重复数据的情况,第一条就是错误的。
搜索更多相关主题的帖子: 纪录 删除 
2010-06-29 19:57
井绳
Rank: 2
等 级:论坛游民
帖 子:97
专家分:69
注 册:2010-6-29
收藏
得分:0 
关闭索引,Locate for 你的关键字==关键字的具体值 all
浏览一下整条记录
next可到下一条
 
2010-06-30 08:46
pmc1234
Rank: 5Rank: 5
等 级:职业侠客
帖 子:398
专家分:383
注 册:2010-1-6
收藏
得分:0 
楼上 为什么要关闭索引呢
2010-06-30 09:22
中国龙王
Rank: 5Rank: 5
等 级:贵宾
威 望:16
帖 子:484
专家分:283
注 册:2006-5-17
收藏
得分:0 
关闭索引后就是自然顺序.就能保证你的第一条在第二条的前面.就没有万一的情况发生

不要为了打发无聊而做无聊的事!不要在虚幻的世界里做虚幻的事!
2010-06-30 15:40
z_jiale
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2010-1-18
收藏
得分:0 
昨天我没有把问题说明白。一个表内出现有重复纪录,虽然设了关键字段(可以是多个关键字段),这样的情况在工作中却经常可以遇到,第一次操作可能是有误需要重新再来,也可能某纪录增添信息再次录入等原因。一般来说以最后一次输入的数据为准,我打算在录入时增加一个日期时间型的字段存储录入的时间,这样在统计或使用数据前先整理数据表,将表内的关键字相同的数据找出来,保留最后输入的纪录,删除以前的纪录。我现在的办法是另设一个表,用循环语句逐条纪录追加到新表内,在原来的表内,检索前时并不知道哪一个纪录是有重复的,现在我整理数据用循环语句找到第一条后,将关键字段相同的后面的(一条或几条相同的)纪录拒绝了。录入的是只能是第一条纪录。这不是我想要的结果。 如何用程序将上述问题解决,请教各位老师给与指导。
2010-06-30 18:20
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:0 
建议:突然故障只好重输数据时,先用关键字把此错记录删除然后再重输数据。(当时处理就用不着再找删了)
2010-06-30 18:48
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
收藏
得分:0 
关键字也可以重复吗?

★★★★★为人民服务★★★★★
2010-07-01 07:35
井绳
Rank: 2
等 级:论坛游民
帖 子:97
专家分:69
注 册:2010-6-29
收藏
得分:0 
VFP本身就有防止出现多个关键字的机制,楼主可参考一下。
2010-07-01 09:29
qjbzjp
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:尧的故乡
等 级:贵宾
威 望:48
帖 子:1914
专家分:4397
注 册:2007-3-14
收藏
得分:5 
楼主先认真测试一下:
USE 表名 EXCLUSIVE
INDEX on 日期时间字段名 TO dt

FOR i=1 TO RECCOUNT()
    GO i
    namez=姓名
    SET FILTER TO 姓名=namez
    COUNT TO ii
    IF ii>1
    GO top
    FOR j=1 TO ii-1
        DELETE
        IF !EOF()
            skip
        ENDIF
    NEXT
    SET FILTER TO
    ENDIF
NEXT  
pack

相互学习,互相交流,共同提高。
2010-07-01 11:50
中国龙王
Rank: 5Rank: 5
等 级:贵宾
威 望:16
帖 子:484
专家分:283
注 册:2006-5-17
收藏
得分:5 
最爽的就是用select *,max(日期时间字段名) from 表 group by 关键字 into 新表
你要想一条一条的慢慢搞就这样也可试一下:
use 表 in 0
select 表
index on 关键字 tag 关键字
go top
scan
    i=关键字
    skip
    if 关键字=i
        skip -1
        delete
        skip
    endif
endscan
   

不要为了打发无聊而做无聊的事!不要在虚幻的世界里做虚幻的事!
2010-07-01 13:36
快速回复:表内有两条相同的纪录,如何找到和删除第一条
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.011893 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved