日期:2014-05-17  浏览次数:20722 次

更新表时遇到了困难……
现在有 A B 两表
A:RYBH(人员编号) ZHZZRQ(账户终止日期)
  XXXX XXXX

B:RYBH(人员编号) ZHSR(账户收入) ZHZZRQ(账户终止日期)  
  XXXX XXX XXXX

简单解释一下,就是A表中和B表中都有人员编号字段。
我需要通过人员编号字段关联AB两表,把B表中的‘账户终止日期’更新到A表中,
 但B表中是记录着账户一段时间的信息记录,所以同一个RYBH在B表中有多条记录。
  我在使用update A set A.ZHZZRQ=(select B.ZHZZRQ from B where B.RYBH=A.RYBH)时,会提示返回值多于一条。
   
  如何进行更新?

另外,如果A表中的RYBH 存在不止一条,也就是说 如果存在重复记录,该如何进行更新啊……跪求大神帮助……

------解决方案--------------------
SQL code

update A
   set A.ZHZZRQ = (select B.ZHZZRQ
                     from B
                    where B.RYBH = A.RYBH
                      and rownum = 1)  --加rownum=1,保证不会返回超过一条记录,前提是b表多记录时,zhzzrq一样
 where exists (select 1 from B WHERE B.RYBH = A.RYBH);   --加where条件防止a表的rybh在B表没有而被更新