解决方案 »

  1.   

    update T_MM_MFTOrderStock mmft
    set finventorybaseqty = (
             select max(inv.FBaseQty) from T_IM_Inventory inv 
             where inv.fwarehouseid = mmft.Fwarehouseid and
                        inv.FStorageOrgUnitID  = mmft.fstorageorgunitid and 
                        inv.FMaterialID = mmft.fmaterialid 
     )
    where exists (select 1 from T_MM_ManufactureOrder where mfo.fid = mmft.fparentid and mfo.fbasestatus in (1,2,4,5,8))
      

  2.   


    -- 下面这行,出现了多条匹配的记录,数据库不知道用哪一条给你更新了。
    select inv.FBaseQty from T_IM_Inventory -- 这种情况,建议你把这些数据都打出来,看看要选取哪一行。如果随便哪个都行的话,可以按 1# 的方法,或 top 1 一下。
      

  3.   

    这是oracle,不是sqlsever,top 1可不行
      

  4.   

    这是oracle,不是sqlsever,top 1可不行打开了一堆帖子,挨个回复,居然犯这个错了, 
    -- 加一个吧
    and rownum = 1