select rk.生产批号,rk.型号,pj.配件编号,pj.配件名称,pj.配件规格,rk.入库总数量,ck.出库总数量,(rk.入库总数量-ck.出库总数量) 库存数量into 库存表from 配件表 pj inner join ( select 配件编号,生产批号,型号,sum(入库数量) 入库总数量 from 入库表 group by 生产批号,型号,配件编号) rk on on pj.配件编号=rk.配件编号left join ( select 配件编号,生产批号,型号,sum(出库数量) 出库总数量 from 出库表 group by 生产批号,型号,配件编号) ck on rk.配件编号=ck.配件编号 and rk.生产批号=ck.生产批号 and rk.型号=ck.型号 注:
(1)上面的写法实现的库存表中不包含没有入过库的商品,如果需要包含,那么第一个连接应该改成左连接. 即:from 配件表 pj left join 入库表 rk on pj.配件编号=rk.配件编号
(2)上面的select ...into 表名是sql server中的写法.如果是oracle,则应该写成: create table 库存表 as select ................... 你自己测试一下看看,我没有测....