日期:2014-05-18 浏览次数:20541 次
--> 测试数据: @A表 declare @A表 table (ID int,合同号 varchar(5),合同签订日期 datetime) insert into @A表 select 1,'cn001','2012-1-20' union all select 2,'cn002','2012-2-10' --> 测试数据: @B表 declare @B表 table (ID int,合同号 varchar(5),产品编号 varchar(3),单价 numeric(2,1)) insert into @B表 select 1,'cn001','111',0.5 union all select 2,'cn001','112',0.8 union all select 3,'cn001','113',0.5 union all select 4,'cn002','2-1',0.6 union all select 5,'cn002','2-2',0.6 --> 测试数据: @C表 declare @C表 table (ID int,合同号 varchar(5),产品编号 varchar(3),数量 int,产品名称 varchar(4),产品规格 varchar(5),颜色 varchar(4),单件重 numeric(3,2),产品类别 varchar(4)) insert into @C表 select 1,'cn001','111',100,'铅笔','0.5mm','白色',0.47,'自产' union all select 2,'cn001','112',50,'铅笔','1mm','蓝色',1.2,'自产' union all select 3,'cn001','113',100,'橡皮','2X2','白色',0.87,'外购' union all select 4,'cn002','2-1',100,'铅笔','1mm','黄色',1.5,'自产' union all select 5,'cn002','2-2',100,'橡皮','2X2','黄色',0.65,'自产' --> 测试数据: @D表 declare @D表 table (ID int,合同号 varchar(5),产品编号 int,所需主料 varchar(4),数量 int,单价 numeric(3,1)) insert into @D表 select 1,'cn001',111,'木材',100,28 union all select 2,'cn001',111,'铅',200,10.8 union all select 3,'cn001',112,'木材',80,38 union all select 4,'cn001',112,'铅',100,13 --> 测试数据: @E表 declare @E表 table (ID int,合同号 varchar(5),产品编号 int,所需辅料 varchar(4),数量 int,单价 numeric(2,1)) insert into @E表 select 1,'cn001',111,'标签',100,1 union all select 2,'cn001',111,'纸箱',200,5.8 union all select 3,'cn001',112,'外壳',80,2.2 --很多字段没有说清楚规则,例如包装字段找不到,数量有2个,销售总价是 数量*单价+数量*单价吗? select c.产品名称,c.产品规格,c.颜色,d.数量 AS dsl ,e.数量 AS esl,所需辅料 AS 包装 ,d.单价 AS d销售总价, e.单价 AS e销售总价,c.单件重 as 总重量 from @A表 a LEFT JOIN @B表 b ON a.合同号=b.合同号 LEFT JOIN @C表 c ON a.合同号=c.合同号 LEFT JOIN @D表 d ON a.合同号=d.合同号 LEFT JOIN @E表 e ON a.合同号=e.合同号 /* 产品名称 产品规格 颜色 dsl esl 包装 d销售总价 e销售总价 总重量 ---- ----- ---- ----------- ----------- ---- --------------------------------------- --------------------------------------- --------------------------------------- 铅笔 0.5mm 白色 100 100 标签 28.0 1.0 0.47 铅笔 0.5mm 白色 100 200 纸箱 28.0 5.8 0.47 铅笔 0.5mm 白色 100 80 外壳 28.0