日期:2014-05-18 浏览次数:20397 次
create table tb (单别 char(2),单号 char(4),料号 char(20) ) insert into tb values ('A1','1001','ABC') insert into tb values ('A1','1001','DEF') create table tb1 (存货 char(20),规格 char(20),数量 int) insert into tb1 values ('CPU','ABC@DEF',100) SELECT * FROM tb SELECT * FROM tb1 -- 单别 单号 料号 A1 1001 ABC A1 1001 DEF 存货 规格 数量 CPU ABC@DEF 100 -- 想要查询的结果(2行料号一起等于规格的时候才显示): 单别 单号 料号 规格 数量 A1 1001 ABC ABC@DEF 100 A1 1001 DEF ABC@DEF 100
create table tb (单别 char(2),单号 char(4),料号 char(20)) insert into tb values ('A1','1001','ABC') insert into tb values ('A1','1001','DEF') create table tb1 (存货 char(20),规格 char(20),数量 int) insert into tb1 values ('CPU','ABC@DEF',100) select e.单别,e.单号,e.料号,d.规格,d.数量 from (select a.单别,a.单号, stuff((select '@'+rtrim(ltrim(料号)) from tb b where b.单别=a.单别 and b.单号=a.单号 for xml path('')),1,1,'') 料号 from tb a group by a.单别,a.单号) c inner join tb1 d on rtrim(ltrim(c.料号))=rtrim(ltrim(d.规格)) inner join tb e on c.单别=e.单别 and c.单号=e.单号 单别 单号 料号 规格 数量 ---- ---- -------------------- -------------------- ----------- A1 1001 ABC ABC@DEF 100 A1 1001 DEF ABC@DEF 100 (2 row(s) affected)