Вы можете использовать запрос, используя pivot и row_number ().Примерно так.
declare @T table
(
EmployeeID int,
TerritoryID char(3)
)
insert into @T values
(1, 'Abc'),
(1, 'Def'),
(2, 'Ghi'),
(2, 'Jkl'),
(2, 'Mno')
select EmployeeID, [1], [2], [3]
from
(
select EmployeeID,
TerritoryID,
row_number() over(partition by EmployeeID order by TerritoryID) as rn
from @T
) as T
pivot
(
min(TerritoryID) for rn in ([1], [2], [3])
) as P
Вам необходимо указать столько чисел, сколько максимальное количество территорий, охватываемых одним сотрудником.Если вы не знаете этого заранее, вам нужно динамически построить запрос.