试试这个:
update talbename a set je = (select je from talbename b where b.zh =  a.zh and to_char(b.rq,'yyyymmdd') = '20020630' and rownum < 2 ) where to_char(a.rq,'yyyymmdd') = '20020731';

解决方案 »

  1.   

    update talbename a set a.je = (select je from talbename b where b.zh =  a.zh and to_char(b.rq,'yyyymmdd') = '20020630' and rownum < 2 ) where to_char(a.rq,'yyyymmdd') = '20020731';
      

  2.   

    或者用这种试试:
    update talbename a set je = (select distinct b.je from talbename b where b.zh =  a.zh and to_char(b.rq,'yyyymmdd') = '20020630') 
    where to_char(a.rq,'yyyymmdd') = '20020731';