当前位置: 代码迷 >> Sql Server >> SQL多表链接,失去不重复的记录
  详细解决方案

SQL多表链接,失去不重复的记录

热度:78   发布时间:2016-04-24 09:29:17.0
SQL多表链接,得到不重复的记录
例如 表a
FJID SBNAME num 
A001 空调     2
A001 电冰箱   3
 表 b
FJID SBXH  num
A001  彩电  1

我的查找语句是:
select a.SBNAME,A.NUM,B.SBXH,B.NUM FROM A inner join b on a.FJID=B.FJID 
的到的结果是
空调   2 彩电 1
电冰箱 3 彩电 1
 我想要的结果是
空调 2 电冰箱 3 彩电1
这个要怎么写啊???
------解决思路----------------------
百度   行专列
------解决思路----------------------

--请参考
/*
period     rankid    name   bonus
20130902   1       A      300
20130902   2       B      200
20130902   3       C      100

行列转换后的结果为

20130902 1 A 300 2 B 200  3 C 100
*/
;with cte as 
(
select 20130902 as period,1 as rankid,'A' as name,300 as bonus
union all select 20130902,2,'B',200
union all select 20130902,3,'C',100
)
select a.period,
stuff((select ' '+name from (select period,(cast(rankid as varchar)+' '+name+' '+cast(bonus as varchar)) as name from cte) b 
       where b.period=a.period 
       for xml path('')),1,1,'') 'name'
from cte a
group by  a.period
  相关解决方案