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 身份证 with psfz,姓名 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 身份证 with psfz,姓名 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.工号
不知道你的表中什么字段数据是唯一的,只好用 工号了,如果没有唯一的用组合条件也可以。