sql2000用一个表的列值对另一个表相应的记录值进行更新

sta2013数据库中有两个表cjr2013xiaotang 和cjr,两个表均以sfzhm唯一标识一条记录,都有zje(总金额)字段,对两个表的zje进行求和:

cjr2013xiaotang:sum(zje):473100,正确数据

cjr:                         sum(zje):426100,错误数据

两表均有927条记录,通过excel比对,共找出cjr表中470条记录的zje值不对,通过排序找出来这470条记录并把zje新成正确的值:对应的excel表:cjr470,导入到sta2013数据库中,表名:cjbd。

先来看一下库中表cjr2013xiaotang 和cjr的zje数据:

               cjr2013xiaotang 的zje求和                                                                                                                        cjr  的zje求和

sql2000用一个表的列值对另一个表相应的记录值进行更新_第1张图片                           sql2000用一个表的列值对另一个表相应的记录值进行更新_第2张图片

473100-426100=47000,(470条记录有错误,每条记录差100元钱)

此时数据库中的表cjbd就是这470条正确的记录,此时我们利用cjbd表去更新cjr中这470条不对的记录,

update cjr
set zje = a.zje
from
(
select zje,sfzhm from cjbd
) as a
where cjr.sfzhm = a.sfzhm

sql2000用一个表的列值对另一个表相应的记录值进行更新_第3张图片

已经更新完成,现在我们再测试一下,是否cjr表中的sum(zje)变成了正确的数据473100呢?

sql2000用一个表的列值对另一个表相应的记录值进行更新_第4张图片

可见,更新成功了。

把cjr重命为crj2013,这就是正确的2013年残疾人的缴费数据(总金额正确,个人缴费还有不对的地方),再导入一次cjr(以备以后实验)

在此谢谢网友的支持,遇到不会的总是有网友帮解决,虽然见不到面,还是谢谢你们了,附图:

sql2000用一个表的列值对另一个表相应的记录值进行更新_第5张图片

sql2000用一个表的列值对另一个表相应的记录值进行更新_第6张图片

 


 

你可能感兴趣的:(数据库操作)