用笨办法解决了,Union All ,再group by
select 仓库名称,物料编码,SUM(期初库存) 期初库存,SUM(入库_采购入库) 入库_采购入库,SUM(出库_车间领用) 出库_车间领用,SUM(期初库存)+SUM(入库_采购入库)-SUM(出库_车间领用) 库存 FROM (SELECT 仓库名称,物料编码,期初库存,0 入库_采购入库,0 出库_车间领用 FROM (SELECT CKMC 仓库名称,WLBM 物料编码,SUM(SJSL) 期初库存 FROM SC0112 GROUP BY CKMC,WLBM,WLMC,DW) QC Union All Select 仓库名称,物料编码,0 期初库存,入库_采购入库,0 出库_车间领用 from (SELECT ckmc 仓库名称,{SC0102a}.[wlbm] 物料编码,sum(sl) 入库_采购入库 From {SC0102} Inner JOIN {SC0102A} ON {SC0102A}.[djh] = {SC0102}.[djh] group by ckmc,wlbm) cg Union All select 仓库名称,物料编码,0 期初库存,0 入库_采购入库,出库_车间领用 from (Select ckmc 仓库名称,wlbm 物料编码,SUM(sl) 出库_车间领用 From {SC0105} Inner JOIN {SC0105A} ON {SC0105A}.[djh] = {SC0105}.[djh] group by ckmc,wlbm) ck ) KC group by 仓库名称,物料编码