【转】sql 一对多情况下 Group by分组 结果多列合并
部分原始表数据
需求: 按routineId进行group分组
初步想法(错误):
select r *
from autowork.dbo.PartOnRoutine
where routineId='1050' or routineId='1060'
group by routineId;
难点:一个routineId对应多个part,需先将part合并,再分组
解决:xml
select routineId,(select [partnr]+',' from autowork.dbo.PartOnRoutine
for XML PATH('')) AS PARTNRS
from autowork.dbo.PartOnRoutine
where routineId='1050' or routineId='1060'
group by routineId;
结果:
百闻不如一见,百见不如一做,只有做了,才知道问题出现在哪儿,才能去解决问题。