现在有 A  B 两表
A:RYBH(人员编号)            ZHZZRQ(账户终止日期)
  XXXX                            XXXXB: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 存在不止一条,也就是说  如果存在重复记录,该如何进行更新啊……跪求大神帮助……

解决方案 »

  1.   


    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表没有而被更新如果a表也存在多条记录,是否更新成一样?如果是的话,上面的语句也适合