SELECT A.进库时间,A.产品代码,B.数量 AS 进库量,C.数量 AS 库存量,D.数量 AS 出库数,E.数量 AS 退货量
FROM
(select 进库时间,产品代码
from 进库表
union 
select 库存时间,产品代码
from 库存表
union 
select 出库时间,产品代码
from 出库表
union 
select 退货时间,产品代码
from 退货表
) as
A left join 进库表 B on B.进库时间=A.进库时间 and B.产品代码=A.产品代码
left join 库存表 C on C.进库时间=A.进库时间 and C.产品代码=A.产品代码
left join 出库表 D on D.进库时间=A.进库时间 and D.产品代码=A.产品代码
left join 退货表 E on E.进库时间=A.进库时间 and E.产品代码=A.产品代码

解决方案 »

  1.   

    時間比較還是用函數datediff,樓主請自己修改。
      

  2.   

    select 时间=isnull(a.时间,b.时间)
    ,产品代码=isnull(a.产品代码,b.产品代码)
    ,进库量=isnull(进库量,0),库存量=isnull(库存量,0)
    ,出库数=isnull(出库数,0),退货量=isnull(退货量,0)
    from(
    select 时间=isnull(进库时间,出库时间)
    ,产品代码=isnull(a.产品代码,b.产品代码)
    ,进库量=a.数量,出库数=b.数量
    from 进库表 a 
    full join 出库表 b on a.进库时间=b.出库时间
    and a.产品代码=b.产品代码
    )a full join(
    select 时间=isnull(库存时间,退货时间)
    ,产品代码=isnull(a.产品代码,b.产品代码)
    ,库存量=a.数量,退货量=b.数量
    from 库存表 a 
    full join 退货表 b on a.库存时间=b.退货时间
    and a.产品代码=b.产品代码
    )b on a.库存时间=b.退货时间
    and a.产品代码=b.产品代码