select t1.finterid ,min(t1.fentryid) fentryid,
fname =(stuff(
(select ' '+fname from
(select t.FinterID finterid,
fname=(stuff(
(select ' '+fname from t_SubMessage where FinterID=t1.FInterID for XML path('')),1,1,''))+','
from SHWorkBillEntry(nolock) t
left join t_SubMessage t1 (nolock) on t.FOperID = t1.FInterID) t2
where FinterID=t1.FInterID for XML path('')),1,1,''))
from
(
select t.FinterID finterid,t.fentryid fentryid,
fname=(stuff(
(select ' '+fname from t_SubMessage where FinterID=t1.FInterID for XML path('')),1,1,''))+','
from SHWorkBillEntry(nolock) t
left join t_SubMessage t1 (nolock) on t.FOperID = t1.FInterID
) t1
group by finterid