SLD_DETIAL 收料表 ID  InNo  MatCode  StoPositon  InNum MatName 
1    A01    C01      store1    150    铜棍    
2    A01    C03      store2    120    阀门 
.... SLD_MAIN 
InNo  WName  DrawDate 
A01  store1  2009-7-1 
..... 
LYB领用表 
BMLLD_DETAIL表 
ID ReceiveNo  MatCode RealNum 
1    111      C01      25 
2    111      C03      30 
.... BMLLD_MAIN表 
ReceiveNo  WName DrawDate 
111        store1  2009-7-2 
库存统计缺 
KCPD_DETAIL 
ID CNo  MatCode  MatName RealName(库存) KCPD_MAIN 
CCode WName  CDate 
求该功能的Delphi和SQL语句,我自己写的总是出错。
aqSLDMain.SQL.Add('select  S.MatCode, S.StoPosition, sum(S.InNum)-sum(U.RealNum) as RealNum from SLD_DETAIL S,BMLLD_DETAIL U, BMLLD_MAIN M where S.StoPosition = M.WName AND U.ReceiveNo = M.ReceiveNo group by S.StoPosition, S.MatCode');
代码来自 下载了资源:仓库管理系统论文(Delphi 7.0+SQL 2000) 13:18  http://download.csdn.net/source/696945

解决方案 »

  1.   

    不看语法错误,看你的语句写就是错误的,如果两个表都sum,那么在连接的时候就会出现问题,数值会大很多,因为这两个表连接的时候实际上是一种多对多的连接。MSSQL逻辑上是先连接后再统计的。
    一般盘点很容易的,这个系统就没有一个记录当前库存的表??
    还需要统计才能得到现在的实际库存?费解!