update f_payre f set f.plan_fee=a.planfee
where exists(select a.certino from 
(select  p.certino,p.certitype,p.policyno,p.feetype,p.planfee  
      from  prpj p
      inner join sae s on p.policyno=s.policyno
                               and p.feetype=s.feetype) a
      where a.certino=f.certi_no
        and a.certitype=f.certi_type
        and a.feetype=f.fee_type)我想通过联合条件,将f表的plan_fee更新成对应的a表的planfee但是sql不能执行,请高手指点要怎么修改下!

解决方案 »

  1.   

    update f_payre f set f.plan_fee(select a.certino from (select p.certino,p.certitype,p.policyno,p.feetype,p.planfee   
      from prpj p
      inner join sae s on p.policyno=s.policyno
      and p.feetype=s.feetype) a where 
    where a.certino=f.certi_no
      and a.certitype=f.certi_type
      and a.feetype=f.fee_type)
      

  2.   

    update f_payre f set f.plan_fee=(select a.certino from (select p.certino,p.certitype,p.policyno,p.feetype,p.planfee   
      from prpj p
      inner join sae s on p.policyno=s.policyno
      and p.feetype=s.feetype) a where 
    where a.certino=f.certi_no
      and a.certitype=f.certi_type
      and a.feetype=f.fee_type)
      

  3.   

    update f_payre f
       set f.plan_fee = (select a.planfee
                           from (select p.certino,
                                        p.certitype,
                                        p.policyno,
                                        p.feetype,
                                        p.planfee
                                   from prpj p
                                  inner join sae s on p.policyno = s.policyno
                                                  and p.feetype = s.feetype) a
                          where a.certino = f.certi_no
                            and a.certitype = f.certi_type
                            and a.feetype = f.fee_type)
     where exists (select 1
              from (select p.certino,
                           p.certitype,
                           p.policyno,
                           p.feetype,
                           p.planfee
                      from prpj p
                     inner join sae s on p.policyno = s.policyno
                                     and p.feetype = s.feetype) a
             where a.certino = f.certi_no
               and a.certitype = f.certi_type
               and a.feetype = f.fee_type)
      

  4.   

    update (select f.plan_fee a,p.planfee b 
              from f_payre f,prpj p sae s 
             where f.certi_no=p.certino 
               and f.certi_type=a.certitype 
               and f.fee_type=a.feetype 
               and p.policyno=s.policyno)
    set a=b;
      

  5.   

    那语句看了有点纠结啊!
    update f_payre f SET f.plan_fee = 
    (SELECT a.planfee FROM (select p.certino,p.certitype,p.policyno,p.feetype,p.planfee   
      from prpj p
      inner join sae s on p.policyno=s.policyno
      and p.feetype=s.feetype) a
      where a.certino=f.certi_no
      and a.certitype=f.certi_type
      and a.feetype=f.fee_type)
      

  6.   

     update f_payre f set f.plan_fee=a.planfee
    where exists(select a.certino from  
    (select p.certino,p.certitype,p.policyno,p.feetype,p.planfee   
      from prpj p
      inner join sae s on p.policyno=s.policyno
      and p.feetype=s.feetype) a ,f_payre f 
      where a.certino=f.certi_no
      and a.certitype=f.certi_type
      and a.feetype=f.fee_type)
      

  7.   

    update f_payre f set f.plan_fee=(select a.planfee from a
    where exists(select a.certino from  
    (select p.certino,p.certitype,p.policyno,p.feetype,p.planfee   
      from prpj p
      inner join sae s on p.policyno=s.policyno
      and p.feetype=s.feetype) a
      where a.certino=f.certi_no
      and a.certitype=f.certi_type
      and a.feetype=f.fee_type))