首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

三表联查,求高人指点.该怎么处理

2012-03-25 
三表联查,求高人指点.订单表订单id产品名称件数出货仓库订单日期122-1-4597钻床300济南2012/1/18 0:00122-

三表联查,求高人指点.
订单表
订单id产品名称件数出货仓库订单日期
122-1-4597钻床300济南2012/1/18 0:00
122-1-4597铣床4200青岛2012/1/18 0:00
122-1-4597台钻1000青岛2012/1/18 0:00
122-1-4597电焊机1000威海2012/1/18 0:00
122-1-4597砂轮机800济南2012/2/1 0:00
122-1-4670手电钻120NULL2012/2/3 0:00
122-1-4670龙门刨床10NULL2012/2/3 0:00
122-1-4670划线平台50NULL2012/2/3 0:00
122-1-4670手虎钳2NULL2012/2/3 0:00
122-1-4670工具箱6NULL2012/2/3 0:00
122-1-4670划规10NULL2012/2/3 0:00
122-1-4670板牙20NULL2012/2/3 0:00
122-1-4670板牙架120NULL2012/2/3 0:00
122-1-4670丝锥50NULL2012/2/3 0:00
122-1-4670钢丝钳50NULL2012/2/3 0:00

配送表
订单ID产品名称件数出货仓库配送单号
122-1-4597台钻1000青岛121-6-8061
122-1-4597钻床300济南121-6-8072
122-1-4597铣床1000济南121-6-8073
122-1-4597铣床1000潍坊121-6-8084
122-1-4597铣床2000滨洲121-6-8084
122-1-4597电焊机1000莱芜121-6-8087
122-1-4597铣床200青岛122-6-8146
122-1-4597砂轮机800济南122-6-8204

出库表
订单ID配送单号产品名称出库件数出货仓库出库单号出库日期
122-1-4597121-6-8084铣床1000潍坊2-01204352012/1/20 0:00
122-1-4597121-6-8061台钻1000青岛3-01204952012/1/20 0:00
122-1-4597121-6-8087电焊机1000莱芜6-0121872012/1/21 0:00
122-1-4597121-6-8084铣床2000滨洲5-01219702012/1/21 0:00
122-1-4597122-6-8146铣床200青岛3-01315092012/1/31 0:00
122-1-4670NULL手虎钳2潍坊2-02034942012/2/3 0:00
122-1-4670NULL电焊机50潍坊2-02034952012/2/3 0:00
122-1-4670NULL龙门刨床20枣庄1-02037842012/2/3 0:00
122-1-4670NULL划线平台50滨洲5-020310402012/2/3 0:00
122-1-4670NULL工具箱6滨洲5-020310412012/2/3 0:00
122-1-4670NULL划规10滨洲5-020310422012/2/3 0:00
122-1-4670NULL板牙架120滨洲5-020310432012/2/3 0:00
122-1-4670NULL手电钻100滨洲5-020310442012/2/3 0:00
122-1-4670NULL钢丝钳50滨洲5-020310452012/2/3 0:00
122-1-4670NULL龙门刨床10滨洲5-020310462012/2/3 0:00
122-1-4670NULL板牙20滨洲5-020310472012/2/3 0:00


结果
订单ID配送单号产品名称出货仓库订单数量配送数量出库数量出库单号订单日期出库日期
122-1-4597121-6-8072钻床济南3003002012/1/18 0:00
122-1-4597121-6-8073铣床济南420010002012/1/18 0:00
122-1-4597121-6-8084铣床潍坊4200100010002-01204352012/1/18 0:002012/1/20 0:00
122-1-4597121-6-8084铣床滨洲4200200020005-01219702012/1/18 0:002012/1/21 0:00
122-1-4597122-6-8146铣床青岛42002002003-01315092012/1/18 0:002012/1/31 0:00
122-1-4597121-6-8061台钻青岛1000100010003-01204952012/1/18 0:002012/1/20 0:00
122-1-4597121-6-8087电焊机莱芜1000100010006-0121872012/1/18 0:002012/1/21 0:00
122-1-4597122-6-8204砂轮机济南8008002012/1/18 0:00
122-1-4670NULL龙门刨床枣庄120NULL201-02037842012/2/3 0:002012/2/3 0:00
122-1-4670NULL龙门刨床滨洲120NULL1005-020310442012/2/3 0:002012/2/3 0:00
122-1-4670NULL手虎钳潍坊2NULL22-02034942012/2/3 0:002012/2/3 0:00
122-1-4670NULL板牙滨洲20NULL205-020310472012/2/3 0:002012/2/3 0:00
122-1-4670NULL钢丝钳滨洲50NULL505-020310452012/2/3 0:002012/2/3 0:00
122-1-4670NULL划线平台滨洲50NULL505-020310402012/2/3 0:002012/2/3 0:00
122-1-4670NULL划规滨洲10NULL105-020310422012/2/3 0:002012/2/3 0:00
122-1-4670NULL丝锥潍坊50NULL502-02034952012/2/3 0:002012/2/3 0:00
122-1-4670NULL龙门刨床滨洲10NULL105-020310462012/2/3 0:002012/2/3 0:00
122-1-4670NULL工具箱滨洲6NULL65-020310412012/2/3 0:002012/2/3 0:00
122-1-4670NULL板牙架滨洲120NULL1205-020310432012/2/3 0:002012/2/3 0:00


[解决办法]
为什么那么忍心~
[解决办法]
你把建表脚本,插入数据的脚本全都给出来吧

------解决方案--------------------


SQL code
--> 测试数据: @订单表declare @订单表 table (订单id varchar(10),产品名称 varchar(8),件数 int,出货仓库 varchar(4),订单日期 datetime)insert into @订单表select '122-1-4597','钻床',300,'济南','2012/1/18 0:00' union allselect '122-1-4597','铣床',4200,'青岛','2012/1/18 0:00' union allselect '122-1-4597','台钻',1000,'青岛','2012/1/18 0:00' union allselect '122-1-4597','电焊机',1000,'威海','2012/1/18 0:00' union allselect '122-1-4597','砂轮机',800,'济南','2012/2/1 0:00' union allselect '122-1-4670','手电钻',120,null,'2012/2/3 0:00' union allselect '122-1-4670','龙门刨床',10,null,'2012/2/3 0:00' union allselect '122-1-4670','划线平台',50,null,'2012/2/3 0:00' union allselect '122-1-4670','手虎钳',2,null,'2012/2/3 0:00' union allselect '122-1-4670','工具箱',6,null,'2012/2/3 0:00' union allselect '122-1-4670','划规',10,null,'2012/2/3 0:00' union allselect '122-1-4670','板牙',20,null,'2012/2/3 0:00' union allselect '122-1-4670','板牙架',120,null,'2012/2/3 0:00' union allselect '122-1-4670','丝锥',50,null,'2012/2/3 0:00' union allselect '122-1-4670','钢丝钳',50,null,'2012/2/3 0:00'--> 测试数据: @配送表declare @配送表 table (订单ID varchar(10),产品名称 varchar(6),件数 int,出货仓库 varchar(4),配送单号 varchar(10))insert into @配送表select '122-1-4597','台钻',1000,'青岛','121-6-8061' union allselect '122-1-4597','钻床',300,'济南','121-6-8072' union allselect '122-1-4597','铣床',1000,'济南','121-6-8073' union allselect '122-1-4597','铣床',1000,'潍坊','121-6-8084' union allselect '122-1-4597','铣床',2000,'滨洲','121-6-8084' union allselect '122-1-4597','电焊机',1000,'莱芜','121-6-8087' union allselect '122-1-4597','铣床',200,'青岛','122-6-8146' union allselect '122-1-4597','砂轮机',800,'济南','122-6-8204'--> 测试数据: @出库表declare @出库表 table (订单ID varchar(10),配送单号 varchar(10),产品名称 varchar(8),出库件数 int,出货仓库 varchar(4),出库单号 varchar(10),出库日期 datetime)insert into @出库表select '122-1-4597','121-6-8084','铣床',1000,'潍坊','2-0120435','2012/1/20 0:00' union allselect '122-1-4597','121-6-8061','台钻',1000,'青岛','3-0120495','2012/1/20 0:00' union allselect '122-1-4597','121-6-8087','电焊机',1000,'莱芜','6-012187','2012/1/21 0:00' union allselect '122-1-4597','121-6-8084','铣床',2000,'滨洲','5-0121970','2012/1/21 0:00' union allselect '122-1-4597','122-6-8146','铣床',200,'青岛','3-0131509','2012/1/31 0:00' union allselect '122-1-4670',null,'手虎钳',2,'潍坊','2-0203494','2012/2/3 0:00' union allselect '122-1-4670',null,'电焊机',50,'潍坊','2-0203495','2012/2/3 0:00' union allselect '122-1-4670',null,'龙门刨床',20,'枣庄','1-0203784','2012/2/3 0:00' union allselect '122-1-4670',null,'划线平台',50,'滨洲','5-02031040','2012/2/3 0:00' union allselect '122-1-4670',null,'工具箱',6,'滨洲','5-02031041','2012/2/3 0:00' union allselect '122-1-4670',null,'划规',10,'滨洲','5-02031042','2012/2/3 0:00' union allselect '122-1-4670',null,'板牙架',120,'滨洲','5-02031043','2012/2/3 0:00' union allselect '122-1-4670',null,'手电钻',100,'滨洲','5-02031044','2012/2/3 0:00' union allselect '122-1-4670',null,'钢丝钳',50,'滨洲','5-02031045','2012/2/3 0:00' union allselect '122-1-4670',null,'龙门刨床',10,'滨洲','5-02031046','2012/2/3 0:00' union allselect '122-1-4670',null,'板牙',20,'滨洲','5-02031047','2012/2/3 0:00'select * from @订单表 a full join @配送表 b on a.订单ID=b.订单ID AND a.产品名称=b.产品名称 full join @出库表 c on a.订单ID=c.订单ID AND a.产品名称=c.产品名称where isnull(b.出货仓库,'')=isnull(c.出货仓库,'')or b.出货仓库 is null or c.出货仓库 is null
[解决办法]
探讨
能不能不用动态表啊?

[解决办法]
LS的是可以的。。接分。。。
[解决办法]
的确是太牛了。。。

热点排行