注册 登录
编程论坛 VFP论坛

查两表不同记录

杂七杂八 发布于 2022-07-08 19:08, 1902 次点击
有A表和B表B,二个表结构 编号 N(4),姓名 C(8)二个字段,二表记录一致。现想二表都按物理记录顺序找出二表中不一致的记录并显示四个字段:A.编号,A.姓名,B.编号,B.姓名 可行吗?
19 回复
#2
吹水佬2022-07-08 19:45
先是“二表记录一致”
后又“二表中不一致的记录”
分别是什么意思?
#3
sdta2022-07-08 19:54
用数据说话
#4
杂七杂八2022-07-08 19:57
回复 2楼 吹水佬
记录的条数是一样的,每条记录的内容有可能不一样
#5
杂七杂八2022-07-08 19:58
回复 3楼 sdta
好的,我把数据上传一下.
#6
杂七杂八2022-07-08 20:08
A表
编号   姓名   
001    张三     
002    李四     
003    王五   

B表
编号   姓名   
011    张三      
002    李四      
003    王六      
#7
sdta2022-07-08 20:28
数据量太少,还没表?
两个表比较,以什么字段做为标准
#8
杂七杂八2022-07-08 20:46
回复 7楼 sdta
只有本站会员才能查看附件,请 登录
#9
杂七杂八2022-07-08 20:47
编号+姓名 不一样的
#10
吹水佬2022-07-08 21:28
结果:
A编号   A姓名   B编号   B姓名  
001     张三    011     张三
003     王五    003     王六  
#11
杂七杂八2022-07-08 21:34
回复 10楼 吹水佬
谢谢你,是想看到这个结果
#12
sdta2022-07-08 21:34
程序代码:
CLEAR
SELECT * FROM 表1 INTO ARRAY a1
SELECT * FROM 表2 INTO ARRAY a2
FOR ln = 1 TO ALEN(a1, 1)
    IF TRANSFORM(a1[ln, 1]) + a1[ln,2] != TRANSFORM(a2[ln, 1]) + a2[ln,2]
        ?ln, a1[ln, 1], a1[ln, 2], a2[ln, 1], a2[ln, 2]
    ENDIF
ENDFOR
#13
sdta2022-07-08 21:37
只有本站会员才能查看附件,请 登录
#14
杂七杂八2022-07-08 21:43
回复 13楼 sdta
谢谢你! 能用 .dbf表格形式出来吗?

[此贴子已经被作者于2022-7-8 21:47编辑过]

#15
sdta2022-07-08 21:47
SELECT *,RECNO() sx1 FROM 表1 INTO CURSOR t1
SELECT *,RECNO() sx2 FROM 表2 INTO CURSOR t2
SELECT t1.编号,t1.姓名,t2.编号 bh,t2.姓名 xm FROM t1, t2 WHERE sx1=sx2 AND TRANSFORM(t1.编号)+t1.姓名 != TRANSFORM(t2.编号)+t2.姓名 into cursor t3
browse
#16
吹水佬2022-07-08 21:54
只有本站会员才能查看附件,请 登录

程序代码:
USE 表1 IN 0
USE 表2 IN 0
SELECT 表1
SET RELATION TO RECNO() INTO "表2"
BROWSE FIELDS 表1.编号, 表1.姓名, 表2.编号, 表2.姓名 FOR !((TRANSFORM(表1.编号)+表1.姓名)==(TRANSFORM(表2.编号)+表2.姓名))

#17
杂七杂八2022-07-08 22:09
回复 15楼 sdta
谢谢你! 麻烦了.
#18
杂七杂八2022-07-08 22:10
回复 16楼 吹水佬
谢谢你!,麻烦了
#19
杂七杂八2022-07-08 22:11
两次感谢二位版主!
#20
dbf永动机2022-09-06 09:33
sele * from a表 where allt(编号) not in (sele allt(编号) from b表)
1