リストには(コメントから)一定数の従業員がいるので、動的である必要はありません。通常のピボットでうまくいくはずです:
select [Company Name],Emp1,Emp2,Emp3,Emp4 from ( SELECT [Company Name], [Employee Name], 'Emp' + cast(ROW_NUMBER() OVER (PARTITION BY [Comp ID] ORDER BY [Design ID], [Emp ID] desc) as char(2)) as RowNum FROM ( SELECT emp.[Emp ID], comp.[Company Name], design.[Designation], emp.[Design ID], emp.[comp id], emp.[Employee Name], ROW_NUMBER() OVER (PARTITION BY emp.[Comp ID], emp.[Design ID] ORDER BY emp.[Comp ID] desc, emp.[Design ID] desc, emp.[Emp ID] desc) RowNum from employee as emp join designation as design on design.[Design ID]=emp.[Design ID] join company as comp on comp.[Comp ID]=emp.[Comp ID] ) a WHERE RowNum <=2 ) as pivotdata pivot (max([Employee Name]) for [RowNum] in (Emp1,Emp2,Emp3,Emp4)) as P
プレ>