select name , sum(shuliang) as shuliang ,stuff(( select ','+cast([id] as varchar) as [text()] from Tab where t1.name=name for xml path('') ),1,1,'') as CalColumnIds from Tab where Flag = 1 group by name
SELECT ID FROM TAB WHERE NAME IN (select name from Tab where Flag = 1 group by name)AS T
, sum(shuliang) as shuliang
,stuff((
select ','+cast([id] as varchar) as [text()]
from Tab
where t1.name=name
for xml path('')
),1,1,'') as CalColumnIds
from Tab
where Flag = 1
group by name
(select name from Tab where Flag = 1 group by name)AS T