用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
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
(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 )
jiangwen365() 的方法不错啊,哪有不能用子查询的数据库 ,第一次听说
那样的话你就可以在MySQL里试试上面的PostgreSQL查询了。
该问题已经结贴 ,得分记录: dulkernetbug(1)
________________________________________________________________________________
________________________________________________________________________________
该问题已经结贴 ,得分记录: ELONGSSS(19)
________________________________________________________________________________
你第一次听说不等于没有,mysql手册中明确说了mysql不支持子查询,我n年前都试过,至于mysql5是否支持还没试。我在mysql手册中也没有看到关于view的资料。也许不支持存储过程的数据库你也是第一次听说吧!