进货一个表,有进货数量字段,售货一个表,有销售数量字段,货物只有一个品种,不需分类,目的是用ADOQuery显示库存情况,在进货表查出总进货数量-在售货表查出总销售数量=库存数量,我要用一个SQL语句解决,怎么写?请各位帮忙,我以前写过有明细的,这 一简单我就反而不会写了。谢谢

解决方案 »

  1.   

    在ADOquery中一定要生成进货总数,销售总数,和库存总数三个字段。
      

  2.   

    select  (a.number-b.number) as number from sales a,stock b
      

  3.   

    select A.进货总数, B.销售总数, (A.进货总数 - B.销售总数) as 库存总数
    from 进货表 A, 销售表 B
    where A.货物名称 = B.货物名称
      

  4.   

    select Sum(a.进货数量) as 进货总数,Sum(b.销售数量) as 销售总数,(Sum(a.进货数量)-Sum(b.销售数量)) as 库存总数 from a,b where ....
      

  5.   

    select A.进货总数, B.销售总数, (A.进货总数 - B.销售总数) as 库存总数
    from 进货表 A, 销售表 B
    where A.货物id = B.货物id
      

  6.   

    select Sum(进货表.进货数量) as 进货总数,Sum(销售表.销售数量) as 销售总数,(Sum(进货表.进货数量)-Sum(销售表.销售数量)) as 库存总数 from 进货表,销售表 where 进货表.货物品种=销售表.货物品种
      

  7.   

    select [a].进货总数, [b].销售总数, ([a].进货总数 - [b].销售总数) as 库存总数
    from 进货表 a, 销售表 b
    where [a].货物名称 = [b].货物名称
      

  8.   

    如果是sqlserver 以下测试通过
    SELECT (SELECT SUM(col_进货数量)
              FROM table_进货) AS 进货总数,          (SELECT SUM(col_销售数量)
             FROM table_销售) AS 销售总数,          (SELECT SUM(col_进货数量)
              FROM table_进货) -
              (SELECT SUM(col_销售数量)
             FROM table_销售) AS 销售总数,
              (SELECT SUM(col_进货数量) AS 库存数量
    如果你只需要库存数量,请把前两个字段去掉即可
    建议用存储过程实现(如果数据量大这样会增加你的速度,我想我写的sql会进行行多次求和,而存储过程可以声明变量,记下销售总数和进货总数,无需重新求和)
    提醒,对于你的情况,我认为一旦写成表的联合,必错无疑
      

  9.   

    select A.进货总数, B.销售总数, (A.进货总数 - B.销售总数) as 库存总数
    from 进货表 A, 销售表 B
    where A.货物id = B.货物id
    用id好一些。
      

  10.   

    gamaster(a明-非sql相关不回):你说的对,我真的算不对数,你的方法我再试试,我的情况是只有一种商品,所以而且每个商品都有一个编号,不能重,一条记录的数量也只能是1,所以where 后面就不好写了,我还特意加个商品名称字段,where [a].货物名称 = [b].货物名称,结果进货总数和销售总数是一样,库存一直是零,真晕呀
      

  11.   

    gamaster(a明-非sql相关不回):我用是ACCESS,你后面  (SELECT SUM(col_进货数量)
              FROM table_进货) -
              (SELECT SUM(col_销售数量)
             FROM table_销售) AS 销售总数,
              (SELECT SUM(col_进货数量) AS 库存数量,这一部分有问题吗
      

  12.   

    试上一试!select 货物品种, sum(数量) as 库存数量
    from (
    select 货物品种 as 货物品种,进货数量 as 数量 from 进货表
    union all
    select 货物品种,0-销售数量 from 销售表 ) t
    group by 货物品种
      

  13.   

    唉,难过呀,我没办法了,因为每条记录数量都是1,所以我只能这样省些事了fm_dm.AQ_in.RecordCount-fm_dm.AQ_out.RecordCount就是库存数了,谢谢朋友的帮忙,有功夫再继续研究。
      

  14.   

    ACCESS中支持sql语句嵌套,不知我的方法你试了吗,或许你给我更详细的表结构信息,我再给你重写.
      

  15.   

    select num=(a.num-b.num)
    from 进货表 a, 出货表 b
    where a.货物=b.货物