Преобразование столбцов в строки - PullRequest
2 голосов
/ 16 февраля 2012

У меня есть структура таблицы, в которой данные поступают в следующем порядке.

EmployeeID     TerritoryID 
    1               Abc 
    1               Def 
    2               Ghi 
    2               Jkl 
    2               Mno 

. Мне нужно получить вывод в следующем порядке.для EmployeeID в 1 строке в нескольких столбцах (динамический).В основном столбцы должны быть преобразованы в строки

Любая помощь приветствуется

Спасибо и С уважением Санджай Паллиил

1 Ответ

4 голосов
/ 16 февраля 2012

Вы можете использовать запрос, используя 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 

Вам необходимо указать столько чисел, сколько максимальное количество территорий, охватываемых одним сотрудником.Если вы не знаете этого заранее, вам нужно динамически построить запрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...