我的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后面的库存数量可能要计算的请高手帮帮忙,看看这样的表怎能么做,主要是入库和出库的记录数不一样,而且还要对应.
订单号 入库数量 入库时间
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后面的库存数量可能要计算的请高手帮帮忙,看看这样的表怎能么做,主要是入库和出库的记录数不一样,而且还要对应.
试试下面的代码[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]
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.订单号)
(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
不过,这样查询可能会比较慢,可以考虑一下全连接的方式