日期:2014-05-16  浏览次数:20853 次

联合查询的问题: 从3张表中查询数据
以前请教过从2张表中查询数字:   即从入库表和销售表中查询目前的库存,   是按照以下的方法:
SELECT   T.[产品编号],   产品表.产品名称,sum(产品数量)   AS   剩余数量
FROM  
      (
        select   [产品编号],产品数量  
        from   入库表
        union   all
        select   [产品编号],销售数量   *   (-1)   as   数量
        from   销售表
    )   AS   T
inner   join   产品表     on   T.产品编号=产品表.产品编号
GROUP   BY   T.[产品编号],产品表.产品名称


现在要复杂一点,要从3张表中查:
1.   入库表:   产品编号,产品数量;
2.   销售表:   产品编号,销售数量;
3.   出库表:   产品编号,   出库数量;

希望得到的结果是:
目前的实际库存量   =   产品数量(入库表)-销售数量(销售表)-出库数量(出库表)

谢谢帮助!



------解决方案--------------------
--多加一个union all即可

SELECT T.[产品编号], 产品表.产品名称,sum(产品数量) AS 剩余数量
FROM
(
select [产品编号],产品数量
from 入库表
union all
select [产品编号],销售数量 * (-1) as 数量
from 销售表
union all
select [产品编号],出库数量 * (-1) as 数量
from 出库表
) AS T
inner join 产品表 on T.产品编号=产品表.产品编号
GROUP BY T.[产品编号],产品表.产品名称