select 0
use B表
select 0
use A表
index on 身份证 to sy
Select B表
go top
do while not eof()
Psfz=alltrim(身份证)身份证字段
Pxm=alltrim(姓名)姓名字段
Pzh=alltrim(账号) 账号字段
select A表
seek psfz
if found()
repla 身份证 withpsfz,姓名 with PXM,账号 with PZH
endif
select B表
skip
enddo
这样就可以。
select 0
use B表
select 0
use A表
index on 身份证 to sy
Select B表
go top
do while not eof()
Psfz=alltrim(身份证)身份证字段
Pxm=alltrim(姓名)姓名字段
Pzh=alltrim(账号) 账号字段
select A表
seek psfz
if found()
repla 身份证 withpsfz,姓名 with PXM,账号 withPZH
endif
select B表
skip
enddo
这样就可以。
SELECT 1 USE 表A INDEX on sfzh TO sfzh
SELECT 2 USE 表B GO TOP DO whil NOT EOF() msfzh=身份证&&身份证号 mxm=姓名 &&姓名 mzh=账号 &&账号 SELECT 1 SEEK msfzh IF EOF()&&如果表A中不存在,就新添加一条记录,并用B表中的各项值代换 APPEND BLANK REPLACE 身份证 WITH msfzh,姓名 WITH mxm,帐号 WITH mzh ELSE&&如果A表中有记录 IF LEN(ALLTRIM(姓名)=0&&如果姓名为空,就用B表中有姓名值代换 REPLACE 姓名 WITH mxm ENDIF IF LEN(ALLTRIM(帐号)=0 &&如果帐号为空,就用B表中有帐号值代换 REPLACE 帐号 WITH mzh ENDIF ENDIF SELECT 2 SKIP ENDDO
没那么麻烦,一条语句的事。
UPDATE tablea SET sfzh=tableb.sfzh,zhanghao=tableb.zhanghao from tableb WHERE tablea.工号=tableb.工号
不知道你的表中什么字段数据是唯一的,只好用 工号了,如果没有唯一的用组合条件也可以。