select isnull(t1.产品 , t2.产品) 产品, isnull(t1.供应商 , t2.供应商) 供应商, isnull(t1.入库数量,0) 入库数量, isnull(t2.出库数量,0) 出库数量, isnull(t1.入库数量,0) - isnull(t2.出库数量,0) 结存数量 from (select m.产品名称 产品 , n.供应商 , sum(入库数量) 入库数量 from 产品表 m , 入库表 n where m.产品id = n.产品id group by m.产品名称 , n.供应商) t1 full join (select m.产品名称 产品 , n.供应商 , sum(出库数量) 出库数量 from 产品表 m , 出库表 n where m.产品id = n.产品id group by m.产品名称 , n.供应商) t2 on t1.产品 = t2.产品 and t1.供应商 = t2.供应商
不一样吧!要这种结果:产品 供应商 入库数量 出库数量 结存数量产品A 供应商A 1000 500 500
产品A 供应商B 500 100 400
...
http://topic.csdn.net/u/20091130/21/fb718680-98ff-4afb-98d8-cff2f8293ed5.html?24281
产品表(产品id,产品名称)
入库表(入库日期,产品id,供应商,入库数量)
出库表(出库日期,产品id, 供应商,出库数量)
结果:
产品 供应商 入库数量 出库数量 结存数量产品A 供应商A 1000 500 500
产品A 供应商B 500 100 400
...
select isnull(t1.产品 , t2.产品) 产品,
isnull(t1.供应商 , t2.供应商) 供应商,
isnull(t1.入库数量,0) 入库数量,
isnull(t2.出库数量,0) 出库数量,
isnull(t1.入库数量,0) - isnull(t2.出库数量,0) 结存数量
from
(select m.产品名称 产品 , n.供应商 , sum(入库数量) 入库数量 from 产品表 m , 入库表 n where m.产品id = n.产品id group by m.产品名称 , n.供应商) t1
full join
(select m.产品名称 产品 , n.供应商 , sum(出库数量) 出库数量 from 产品表 m , 出库表 n where m.产品id = n.产品id group by m.产品名称 , n.供应商) t2
on t1.产品 = t2.产品 and t1.供应商 = t2.供应商