我现在有3张表,分别如下
表a
物品编码   仓库    累计入库数量   累计入库金额
  0001      01         40            1200
  0001      03         40            1200
  0002      01         30            150
  0002      02         20            100表b
物品编码   仓库    累计出库数量   累计出库金额
  0001      01         20            600
  0002      03         40            240
表c
物品编码   仓库    库存初始数量   库存初始金额
  0001      01         10            300   
  0002      01         40            200
要查询出来的结果应如下
物品编码   仓库   累计入库数量    累计入库金额  累计出库数量  累计出库金额  库存初始数量  库存初始金额   期末数量   期末金额
 0001       01       40              1200           20           600           10            300           30         900
 0001       03       40              1200           0            0             0             0             40        1200
 0002       01       30               150           0            0             40            200           70         350
 0002       02       20               100           0            0             0             0             20         100     
 0002       03        0                 0           40           240           0             0            -40        -240     
请大家指导下,谢谢

解决方案 »

  1.   

    用查询写了个,比较难读select 物品编码,仓库,sum(累计入库数量),sum(累计入库金额),sum(累计出库数量),sum(累计出库金额),sum(库存初始数量),sum(库存初始金额),
    sum(库存初始数量+累计入库数量-累计出库数量) as 期末数量,sum(库存初始金额+累计入库金额-累计出库金额) as 期末金额 
    from
    (select 物品编码,仓库,累计入库数量,累计入库金额,0 as 累计出库数量,0 as 累计出库金额,0 as 库存初始数量,0 as 库存初始金额 from 表A
    union all
    select 物品编码,仓库,0 as 累计入库数量,0 as 累计入库金额,累计出库数量,累计出库金额,0 as 库存初始数量,0 as 库存初始金额 from 表B
    union all
    select 物品编码,仓库,0 as 累计入库数量,0 as 累计入库金额,0 as 累计出库数量,0 as 累计出库金额,库存初始数量,库存初始金额 from 表C)
    group by 物品编码,仓库
      

  2.   

    select a.物品编码,a.仓库,sum(a.累计入库数量) 累计入库数量,sum(a.累计入库金额) 累计入库金额,
    sum(b.累计出库数量) 累计出库数量,sum(b.累计出库金额) 累计出库金额, 
    sum(c.库存初始数量) 库存初始数量,sum(c.库存初始金额) 库存初始金额,
    sum(c.库存初始数量)+sum(a.累计入库数量)-sum(b.累计出库数量) 期末数量,
    sum(c.库存初始金额)+sum(b.累计入库金额)-sum(b.累计出库金额) 期末金额 
    from a,b,c
    where a.物品编码=b.物品编码 and a.物品编码=c.物品编码 and a.仓库=b.仓库 and a.仓库=c.仓库
    group by a.物品编码,a.仓库
      

  3.   

    我开始也是用的nvl函数,但是用了太多的left join 就像问问有没有比较好的方法
    谢谢各位哈!