(急求)多表联合查询--万分感谢(解决了马上结帖)
我有四个表orderinfo、表InputMateriel、表OutputMateriel、表StockPileInfo
-----------InputMateriel表结构如下:---------------------订料表
类型 供应商名 订料单号 订料名称 数量 要求到料时间 实际到料时间
ordtype proname ordmcode orddsMname ordNumber ordSqdata ordsjdata
-----------InputMateriel表结构如下:---------------------来料表
类型 来料时间 来料单号 料名,供应商,来料数
Ipttype mdata Iptmcode mname pname Iptmnum
-----------OutputMateriel表结构如下:--------------------发料表
类型 来料时间 来料单号 料名,供应商,来料数
Opttype mdata Optmcode mname pname Optmnum
-----------StockPileInfo表结构如下:---------------------库存表
类型 料名 库存数
Stotype mname Stomnum 进料之前此表是空表
-------------------------------------------------------
原始数据
-------------------------------------
select * from OrderInfo
结果:类型 供应商名 订料单号 订料名称 数量 要求到料时间 实际到料时间
1001 一厂 A-1001 电源 200 2007-04-10 2007-04-12
1001 一厂 A-1002 电容 100 2007-04-12 2007-04-12
1001 一厂 A-1003 电源 500 2007-04-18 2007-04-19
select * from InputMateriel
结果:类型 料名 供应商 来料单号 来料时间 来料数
1001 电源 一厂 AL-1001 2007-04-12 200
1001 电容 一厂 AL-1002 2007-04-15 100
1001 电源 一厂 AL-1003 2007-04-19 500
select * from OutputMateriel
结果:类型 料名 供应商 发料单号 发料时间 发料数
1001 电源 一厂 AF-1001 2007-04-13 100
1001 电源 一厂 AF-1002 2007-04-15 30
1001 电源 一厂 AF-1003 2007-04-16 20
1001 电容 一厂 AF-1004 2007-04-16 50
1001 电容 一厂 AF-1005 2007-04-18 20
select * from StockPileInfo (此表实时更新,来一批料现库存+来料数,发一批料现库存-发料数)
结果:类型 料名 现库存
1001 电源 550
1001 电容 30
-------------------------------------
注释:1、(来料时间=实际到料时间)2、(现在库存=原库存+来料数-发料数)
一种类型可以有很多种料...
-------------------------------------
怎么按(类型、料名、时间结合四个表查询得到如下结果:按时间排序(也要能 按 型号+料名+时间)具体细化查询,总休查询才无所谓,主要是能具体细化查询
1、(总体查询)
订料单号 类型 料名 来料单号 来料时间 来料数量 发料单号 发料时间 发料数量 库存
A-10011001 电源 AL-1001 2007-04-12 200 NULL NULL NULL 200
A-10011001 电源 NULL NULL NULL AF-1001 2007-04-13 100 100
A-10011001 电源 NULL NULL NULL AF-1002 2007-04-15 30 70
A-10011001 电源 NULL NULL NULL AF-1003 2007-04-16 20 50
B-10011001 电容 BL-1001 2007-04-15 100 NULL NULL NULL 100
B-10011001 电容 NULL NULL NULL BF-1004 2007-04-1 50 50
B-10011001 电容 NULL NULL NULL BF-1005 2007-04-1 20 30
2、****(具体细化查询) 假如按 类型为:1001
料名为:电源
时间为: between '2007-04-11 ' and '2007-04-20 '
排序 : 来料时间 发料时间
得到的结果如下:
订料单号类型料名来料单号 来料时间 来料数量 发料单号 发料时间 发料数量 库存
A-1001 1001 电源 AL-1001 2007-04-12 200 NULL NULL NULL 200
A-1001 1001 电源 NULL NULNULL AF-1001 2007-04-13 100 100
A-1001 1001 电源 NULL NULLNULL AF-1002 2007-04-15 30 70
A-1001 1001 电源 NULL NULLNULL AF-1003 2007-04-16 20 50
A-1001 1001 电源 AL-1003 2007-04-19 500 NULL NULL NULL 550
{ 来发总数 } 700 NULL NULL 150 550
[解决办法]
数据太多,先做个记号,下班后look一下。
[解决办法]
看得有点晕
[解决办法]
LZ估计是查询时不知道库存怎么取了吧?其他的我看倒很简单,用UNION连接下,从2个表查询,计算库存的,LZ可以写一个函数,在函数里按订料单号计算,这样总体就能对应了