1.由于你没有库存表,所以,就要统计 “进库数量-出库数量”等于库存
2.统计数量,用到分组汇总
select 商品代码,sum(数量) as 进库 from 进库表 group by 商品代码 && 以商品代码分组统计进库数量
简化一下你的
use C:\进库数据表 in o
use C:\出库数据表 in o
然后,就可以,测试了
select t1.商品代码,nvl(t0.进库,0)-t1.出库 as 库存,t2.商品名称 from (select 商品代码,sum(数量) as 出库 from 出库数据表 group by 商品代码)t1 ;
left join (select 商品代码,sum(数量) as 进库 from 进库数据表 group by 商品代码)t0 on t0.商品代码=t1.商品代码 ;
left join (select 商品代码,商品名称 from 商品表)t2 on t2.商品代码=t1.商品代码 ;
union all ;
select 商品代码,sum(数量) as 库存,max(商品名称) 商品名称 from 进库数据表 where 商品代码 not in (select 商品代码 from 出库数据表) group by 商品代码
2.统计数量,用到分组汇总
select 商品代码,sum(数量) as 进库 from 进库表 group by 商品代码 && 以商品代码分组统计进库数量
简化一下你的
use C:\进库数据表 in o
use C:\出库数据表 in o
然后,就可以,测试了
select t1.商品代码,nvl(t0.进库,0)-t1.出库 as 库存,t2.商品名称 from (select 商品代码,sum(数量) as 出库 from 出库数据表 group by 商品代码)t1 ;
left join (select 商品代码,sum(数量) as 进库 from 进库数据表 group by 商品代码)t0 on t0.商品代码=t1.商品代码 ;
left join (select 商品代码,商品名称 from 商品表)t2 on t2.商品代码=t1.商品代码 ;
union all ;
select 商品代码,sum(数量) as 库存,max(商品名称) 商品名称 from 进库数据表 where 商品代码 not in (select 商品代码 from 出库数据表) group by 商品代码