| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 8419 人关注过本帖, 1 人收藏
标题:如何查找两个表里,相同的字段,不同的数据
只看楼主 加入收藏
chuxue
Rank: 1
等 级:新手上路
帖 子:78
专家分:4
注 册:2008-1-22
结帖率:64.29%
收藏(1)
已结贴  问题点数:20 回复次数:6 
如何查找两个表里,相同的字段,不同的数据
又得请教各位高手了。
我有两个表格,字段都一样,但是有朋友给我搞恶作剧,把一些字段里的数据给我改变了,我能用个什么命令查找出来吗

论坛上传附件经常失败。我只能传到百度网盘,希望您从百度网盘下载
http://pan.baidu.com/share/link?shareid=479886&uk=4077588256

[ 本帖最后由 chuxue 于 2013-5-29 10:13 编辑 ]
搜索更多相关主题的帖子: 恶作剧 如何 百度 
2013-05-29 10:08
taifu945
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:80
帖 子:1545
专家分:3298
注 册:2012-7-6
收藏
得分:7 
如果被改字段没有规律,那就比较麻烦。但你没有说清,两个表文件字段相同,原有记录的内容是否也完全一样?也即原始状态是否相当于拷贝关系?
2013-05-29 10:35
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:7 
要有一没出错的字段 比如准考证号
2013-05-29 10:45
taifu945
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:80
帖 子:1545
专家分:3298
注 册:2012-7-6
收藏
得分:0 
还好,你名字没有被改过,否则真要人工找了。这条命令仅能用在没有重名的表文件中,若有重名,也无法使用,因为匹配出来的信息是错误的。
SELECT * FROM A, B ;
   WHERE (A.姓名=B.姓名) AND ;
      (A.班级#B.班级 OR A.数学#B.数学 OR A.外语#B.外语 OR ;
       A.语文#B.语文 OR A.政治#B.政治 OR A.准考证号#B.准考证号)
查询结果:
图片附件: 游客没有浏览图片的权限,请 登录注册

这里是为了简便,把有内容不同的记录以对比的方式列出所有字段。如果你想看起来方便,输出列这里不要用星号,可以自己指定两个表字段的顺序,把相同的字段放在一起,以便核对。比如:SELECT A.姓名, A.准考证号, B.准考证号, ... 。如果字段再多,虽然也可以用这个命令的方法,但代码会很冗长,看起来累。最好的方法是保管好自己重要的数据,不要让别人修改甚至查看。可以完成后在其它电脑中留个备份,比如,自己家里的电脑。
收到的鲜花
  • tlliqi2013-05-29 11:16 送鲜花  20朵   附言:加分
2013-05-29 11:10
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:0 
数据多了难免有姓名不重的
2013-05-29 11:18
taifu945
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:80
帖 子:1545
专家分:3298
注 册:2012-7-6
收藏
得分:0 
以下是引用tlliqi在2013-5-29 11:18:05的发言:

数据多了难免有姓名不重的
是呀,数据是最重要的。
2013-05-29 11:58
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9842
专家分:27213
注 册:2012-2-5
收藏
得分:7 
程序代码:
SELECT RECNO() 序号,* FROM A2 INTO CURSOR A22
SELECT RECNO() 序号,* FROM A1 INTO CURSOR A11
EE=AFIELDS(AA,'A11')
CREATE CURSOR T (序号 C(12),准考证号 C(12),字段名 C(10),A1内容 C(20),A2内容 C(20)) &&保存不同记录的临时表
FOR I=1 TO EE
    STORE "SELECT " TO ASQLA,ASQLB
    IF UPPER(AA(I,1))<>'序号'
       ASQLA=ASQLA+"'"+AA(I,1)+"' AS ZD,序号,准考证号 ZKZH,"+AA(I,1)+" FROM A11 INTO CURSOR QTA"
       &ASQLA
       ASQLB=ASQLB+"'"+AA(I,1)+"' AS ZD,序号,"+AA(I,1)+" FROM A22 INTO CURSOR QTB"
       &ASQLB
       ASQLC="INSERT INTO T SELECT A.序号,A.ZKZH,A.ZD,A."+AA(I,1)+",B."+AA(I,1)+" FROM QTA A LEFT JOIN QTB B ON A.序号=B.序号 WHERE A."+AA(I,1)+"<>B."+AA(I,1)
       &ASQLC
    ENDIF
NEXT 

SELECT T
INDEX ON 序号 TO XH
BROWSE

两表相同字段,字段记录不同结果见下表

图片附件: 游客没有浏览图片的权限,请 登录注册

坚守VFP最后的阵地
2013-05-30 02:31
快速回复:如何查找两个表里,相同的字段,不同的数据
数据加载中...
 
   



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

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