日期:2014-05-18  浏览次数:20524 次

请教两个表关联查询sql
请教高手,用select实现以下功能:
物资入库表:
单据编号     业务类型       物资编号     数量
1                   A                       001               10
2                   B                       001               8

物资出库表:    
单据编号     业务类型       物资编号     数量
1                   A                       001               3
2                   B                       001               5

想要以业务类型和物资编号为统计依据,实现以下结果:
业务类型     物资编号       入库数量       出库数量
A                     001                 10                     3
B                     001                 8                       5



------解决方案--------------------
select A.业务类型,A.物资编号,A.入库数量,B.出库数量
from 物资入库表 A,物资出库表 B where A.单据编号=B.单据编号
------解决方案--------------------
select A.业务类型,A.物资编号,A.入库数量,B.出库数量
from 物资入库表 A left join
物资出库表 B on B.业务类型=A.业务类型 and A.物资编号 = B.物资编号

------解决方案--------------------
补充。
建议你建立一个记录表,在做入库审核的时候,将关键的字段插入到这个记录表中
在做出库的时候,将关键的字段也插入到这个表中。

具体表的格式可以是这样:
业务类型 物资编号 交易日期 入出 数量
A 001 2007-09-10 1 10
B 001 2007-09-20 1 8
A 001 2007-09-14 -1 3
B 001 2007-09-13 -1 5


这样的话,无论是统计还是记录都一目了然了
------解决方案--------------------
select A.业务类型,A.物资编号,A.入库数量,B.出库数量
from 物资入库表 A,物资出库表 B where A.业务类型 =B.业务类型 and A.物资编号=B.物资编号