update mrequest
   set shortage = mrequest.mrqty - passout.outqty + passin.inqty + rein.reqtyin
   from mrequest, passout, passin, rein
   where mrequest.mrno = passout.mrno 
     and mrequest.mrno = passin.mrno  
     and mrequest.mrno = rein.mrno  
     and mrequest.partno = passout.partno 
     and mrequest.partno = passin.partno  
     and mrequest.partno = rein.partno  

解决方案 »

  1.   

    update mrequest 
    set shortage = mrequest.mrqty - passout.outqty + passin.inqty + rein.reqtyin
    from passout a,passin b,rein c
    where mrequest.mrno=a.mrno and mrequest.partno=a.partno and
          a.mrno=b.mrno and a.partno=b.partno and
          b.mrno=c.mrno and b.partno=c.partno
      

  2.   

    update mrequest 
    set shortage = mrequest.mrqty - a.outqty + b.inqty + c.reqtyin
    from passout a,passin b,rein c
    where mrequest.mrno=a.mrno and mrequest.partno=a.partno and
          a.mrno=b.mrno and a.partno=b.partno and
          b.mrno=c.mrno and b.partno=c.partno
      

  3.   

    TRY:
    update mrequest set shortage=d.mrqty-a.outqty+b.inqty+reqtyin
     from mrequest d,passout a,passin b,rein c 
    where d.mrno=a.mrno and d.partno=a.partno
    and d.mrno=b.mrno and d.partno=b.partno
    and d.mrno=c.mrno and d.partno=c.partno
      

  4.   

    update mrequest set shortage = mrequest.mrqty - passout.outqty + passin.inqty + rein.reqtyin
    from mrequest,passout,passin,rein
    where mrequest.mrno=passout.mrno and mrequest.partno=passout.partno
    and mrequest.mrno=passin.mrno and mrequest.partno=passin.partno
    and mrequest.mrno=rein.mrno and mrequest.partno=rein.partno
      

  5.   

    passout,passin,rein中同一个partno在一个mrno中可能有很多记录,要先对这几个表汇总。
      

  6.   

    有点难吧,也可以帮我想想分几步的做法,如第一步把passin,rein,passout内的记录分组出来,再来更新mrequest表
      

  7.   

    update mrequest set shortage=d.mrqty-a.outqty+b.inqty+c.reqtyin
    from mrequest d,
    (select mrno,sum(outqty) outqty from  passout group by mrno) a,
    (select mrno,sum(inqty ) inqty from  passin group by mrno) b,
    (select mrno,sum(reqtyin) reqty from rein group by mrno) cwhere d.mrno=a.mrno and d.partno=a.partno
    and d.mrno=b.mrno and d.partno=b.partno
    and d.mrno=c.mrno and d.partno=c.partno
      

  8.   

    运行 happydreamer(黑DD)的结果是:
    服务器: 消息 207,级别 16,状态 3,行 1
    列名 'reqtyin' 无效。
    服务器: 消息 207,级别 16,状态 1,行 1
    列名 'partno' 无效。
    服务器: 消息 207,级别 16,状态 1,行 1
    列名 'partno' 无效。
    服务器: 消息 207,级别 16,状态 1,行 1
    列名 'partno' 无效。等待...
      

  9.   

    update mrequest set shortage=d.mrqty-a.outqty+b.inqty+c.reqtyin
    from mrequest d,
    (select mrno,sum(outqty) outqty from  passout group by mrno,partno) a,
    (select mrno,sum(inqty ) inqty from  passin group by mrno,partno) b,
    (select mrno,sum(reqtyin) reqtyin from rein group by mrno,partno) cwhere d.mrno=a.mrno and d.partno=a.partno
    and d.mrno=b.mrno and d.partno=b.partno
    and d.mrno=c.mrno and d.partno=c.partno