用PostgreSQL的话很容易就可以写出来:
SELECT SUM(goods_num) FROM
(
  SELECT ProductID,in_num AS goods_num FROM goods_in
  UNION ALL
  SELECT ProductID,-1*out_num AS goods_num FROM goods_out
  UNION ALL
  SELECT ProductID,rut_num AS goods_num FROM goods_return
) AS foo
GROUP BY ProductID

解决方案 »

  1.   

    由于数据库用的是mysql,不能用子查询,
      

  2.   

    真的没有高手过来吗?问题没解决为什么csdn还把我的分数给扣掉了???
      

  3.   

    其中的库存量,是不是包括发料出库表goods_out里的该商品的数量呢?
      

  4.   

    select a.ProductID,b.in_num -c.out_num+d.return_num as ProductNum from 
    (select ProductID from  product a 
       left join (select ProductID,sum(in_num) as in_num from goods_in group by ProductID) as b on a.ProductID = b.ProductID 
       left join (select ProductID,sum(out_num) as out_num from goods_out group by ProductID) as c on a.ProductID = c.ProductID 
       left join (select ProductID,sum(return_num) as return_num from goods_return group by ProductID) as d on a.ProductID = d.ProductID )
      

  5.   

    To楼主,问题好象已经解决了,是你自己的问题吧
    jiangwen365() 的方法不错啊,哪有不能用子查询的数据库 ,第一次听说
      

  6.   

    MySQL发布的测试版好像刚刚开始支持子查询了。
    那样的话你就可以在MySQL里试试上面的PostgreSQL查询了。
      

  7.   

    这个,有数了________________________________________________________________________________
    该问题已经结贴 ,得分记录:  dulkernetbug(1)
    ________________________________________________________________________________
      

  8.   

    用SQL SERVER的视图工具一拖就出来了
    ________________________________________________________________________________
    该问题已经结贴 ,得分记录:  ELONGSSS(19)
    ________________________________________________________________________________
      

  9.   

    没用过MySql,MySql支持视图吗?可以对视图作统计!
      

  10.   

    to  zilang(随意的风):
    你第一次听说不等于没有,mysql手册中明确说了mysql不支持子查询,我n年前都试过,至于mysql5是否支持还没试。我在mysql手册中也没有看到关于view的资料。也许不支持存储过程的数据库你也是第一次听说吧!
      

  11.   

    csdn真不爽,问题解决不了分数也不能收回了。