我在sql server中有一个如下语句:
Update H Set H.Num = H.Num + A.Num from HSAVE H,
(
  Select MF04, MF09, SUM(MF06) NUM from RKOMF
  WHERE MF01 = 'AA' AND MF02 = 'S001'
  Group by MF04, MF09
) A
Where H.H01 = A.MF04 AND H.H02 = A.MF09-------------------------------------------------
这个语句我在sql server中是可以正常执行的,可是到oracle中却通不过语法检查,说error第一行, 语句没有正常结束。
请问应该怎么写? 

解决方案 »

  1.   

    try:
    Update HSAVE H, 

      Select MF04, MF09, SUM(MF06) NUM from RKOMF 
      WHERE MF01 = 'AA' AND MF02 = 'S001' 
      Group by MF04, MF09 
    ) A Set H.Num = H.Num + A.Num from 
    Where H.H01 = A.MF04 AND H.H02 = A.MF09 
      

  2.   

    oracel里的update只能单表,没有from
      

  3.   

    Update HSAVE H 
    Set H.Num = 
    (
      Select  SUM(MF06)+h.num from RKOMF c
      WHERE MF01 = 'AA' AND MF02 = 'S001' 
            and H.H01 = c.MF04 AND H.H02 = c.MF09   
      Group by c.MF04, c.MF09 
    )Where exists(
      Select  1 from RKOMF c
      WHERE MF01 = 'AA' AND MF02 = 'S001' 
            and H.H01 = c.MF04 AND H.H02 = c.MF09   
      )