SQL查询,将不同编码下的不良原因合并在一起,请大湿们指导下,谢谢!

littleredhorse 2015-07-15 08:31:06
问题:在SQL数据库中,使用查询语句希望得到一个报表,同一个物料编码下的不良因合并在一单元格,以备另外的查询后关联“不良原因合并”内容。目前使用了一个 “Select ',' + aa.不良原因 ,FROM aa FOR XML PATH('')”,但是查询出来的结果都合并为一个单元格了,没有按照编码来分组,所以不符合我的需求,希望高手们指点一下新的语句,万分感谢。
注:不是在EXCEL中完成,是要求在SQL完成。
希望得到的图片结果
...全文
121 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复

declare @tb table(序号 int,编码 varchar(10),发生次数 int, 不良原因 varchar(100))
insert into @tb
select 1,'A',2,'原因1' union all
select 2,'A',1,'原因2' union all
select 3,'A',1,'原因3' union all
select 4,'B',183,'原因2' union all
select 5,'B',49,'原因5' union all
select 6,'B',22,'原因6' union all
select 7,'C',22,'原因2' union all
select 8,'C',12,'原因3' union all
select 9,'C',8,'原因4'
select 编码,STUFF((select ','+tb2.不良原因 from @tb tb2 where tb1.编码=tb2.编码 order by tb2.序号 for xml path('')),1,1,'') as '不良原因合并' from @tb tb1 group by 编码
AcHerat 2015-07-15
  • 打赏
  • 举报
回复

select 编码,stuff((Select ',' + s.不良原因 ,FROM  aa s where t.编码 = s.编码 FOR XML PATH('')),1,1,'') as 不良因
from aa t
group by 编码

22,300

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧