vfp数据库两张相同结构的表如何进行数据比对!(在线等!)

我先在有两个表,他们的结构是一样的。里面的内容有些是不同的,但是有很多是一样的。我想把他们之间不同的数据找出来!放到一张新表里面。请教各位了阿!我把我的毕生积分送给你们!... 我先在有两个表,他们的结构是一样的。里面的内容有些是不同的,但是有很多是一样的。我想把他们之间不同的数据找出来!放到一张新表里面。请教各位了阿!我把我的毕生积分送给你们!
例如:a表里面 有一个x记录和y记录,b表里也有有一个x记录和y记录,但是b表里面的y记录有一个字段和a表里的y记录不一样,那么就将这个y记录挑选出来。放到一个新的表里面!
展开
 我来答
凤遊
2008-01-09 · TA获得超过3477个赞
知道大有可为答主
回答量:1139
采纳率:0%
帮助的人:825万
展开全部
先看你的数据库有多少个字节,如果字节总数少于255最方便。新建一个数据库ttt.dbf,就一个字段AA,字符型,宽度254。

打开你的数据库,输入命令
copy to temp sdf
use ttt
appe from temp sdf
修改temp库结构,增加字段recn(C型,10位,用来保存记录号),sl(N型,宽度1,保存相同记录的条数),ctrl+w退出表设计器
repl all recn with str(recn(),10),sl with 1
inde on AA to 123
total on AA to 123
use 123
数据库123就是没有重复记录的新表,里面的sl是记录有相同的重复数量,recn是相同的第一条记录位于原表的记录号。

如果原来的表总宽度大于255,小于509,可以再增加一个字段AB,先按AA字段TOTAL,再按AB字段TOTAL,然后把这样形成的两个新表的记录号都到老表标出,标出的记录拷贝出来就是无完全相同记录的表了。

补充问题和这原理一样,如果a和b字段相同的话,可以用上面的办法整理出两个temp表,temp1和temp2。先把temp1的所有记录都加上删除标记,把把b中有不一样记录的恢复,余下的就是所需。

sele 2
use temp2
sele 1
use temp1
dele all
go top
do while !eof()
sele 2
loca for !aa=a.aa
if !eof()
sele 1
reca
endif
sele 1
skip
enddo
pack

这样temp1中的记录号代表的原a表的记录组成的新表就是询问者所需。
恨别愁更伤悲
推荐于2016-01-04 · TA获得超过913个赞
知道大有可为答主
回答量:1585
采纳率:0%
帮助的人:1345万
展开全部
可以用这样的方法 b1(xh,xm),b2(xh,xm)
use b1 in 1
use b2 in 2
do while !eof()
select 1
a=xh
select 2
locate for a=xh
if !found()
select 1
delete
skip
else
select 1
skip
endif
enddo
select b1
copy to c for deleted()
那么b1中以字段xh为区别的不同记录就存在c表中了
可行
试过
你要按照什么字段来区别都可以
每个字段都区别一下也成
如果有需要可以给你写一个通用的
任何两个表之间不同记录的筛选
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式