我的SQL里有三个表,两个是入库表,一个是出库表。入库表格形式类似于
订单号       入库数量     入库时间    
2007001     100      2007.1.1
2007001     100      2007.1.2
2007002     200      2007.1.3
2007003     100      2007.1.3出库表格形类似于
订单号       出库数量      出库时间
2007001     200      2007.1.3
2007002     50       2007.1.4
2007002     150      2007.1.5
2007003     50       2007.1.5
现在想把这两个表合在一起,生成新表,格形类似于
订单号      入库数量    入库时间   出库数量      出库时间     库存数量
2007001    100      2007.1.1   200        2007.1.3      0
           100      2007.1.2
2007002    200      2007.1.3   50         2007.1.4      0
                               150        2007.1.5
2007003    100      2007.1.3   50         2007.1.5      50后面的库存数量可能要计算的请高手帮帮忙,看看这样的表怎能么做,主要是入库和出库的记录数不一样,而且还要对应.

解决方案 »

  1.   


    试试下面的代码[code=SQL]
    r1,r2 入库表c1   出库表
    select rk.订单号,rk.入库数量,rk.入库时间,
          c1.出库数量,c1.出库时间,
         (rk.入库数量-c1.出库数量) as 库存数量 
    from 
    (
       select *
         from r1
       union all
       select * 
         from r2
    ) rk
    left join c1 on (rk.订单号=c1.订单号)
    [/code]
      

  2.   

    试试下面代码
    r1,r2 入库表c1   出库表
    select rk.订单号,rk.入库数量,rk.入库时间,
          c1.出库数量,c1.出库时间,
         (rk.入库数量-c1.出库数量) as "库存数量" 
    from 
    (
       select *
         from r1
       union all
       select * 
         from r2
    ) rk
    left join c1 on (rk.订单号=c1.订单号)
      

  3.   

    二楼的应该不能得到你想要的结果!!!r1,r2 入库表,r3出库表!! select a.no,a.incount,a.intime,b.outcount,b.outtime,x-y as sum from
     (select * from r1 union all select * from r2) a
     join r3 b  on a.no=b.no
     join (select aa.no,sum(incount) x from (select * from r1 union all select *
           from r2) aa  group by aa.no) c  on a.no=c.no
     join (select no,sum(outcount) y from r3
     group by no) d  on a.no=d.no
      

  4.   

    同意楼上gxlineji的看法,因为入库于出库所生成的订单号一般来说是不相同的,
    不过,这样查询可能会比较慢,可以考虑一下全连接的方式