Marc ma rację. Nie rób tego w SQL, rób to na poziomie prezentacji. Jeśli jednak chcesz to zrobić, spójrz tutaj:Jak zwrócić dane jednego wiersza z 2 różnych tabel za pomocą zawartość dynamiczna w sql
W zależności od sytuacji kod może wyglądać następująco:
select SpecialistName , LEFT(JobsIds, len(JobsIds)-1) as JobsIds from
(SELECT j.SpecialistName ,
( SELECT cast(j1.JobsId as varchar(10)) + ','
FROM Jobs j1
WHERE j1.SpecialistName = j.SpecialistName
ORDER BY JobId
FOR XML PATH('') ) AS JobsIds
FROM Jobs j
GROUP BY SpecialistName )A;