Я хочу вернуть столбцы, представляющие разных пользователей для файла CSV для части нашей базы данных.
Базовые таблицы выглядят примерно так:
ProviderId ProviderName
1 Test
2 FooBar
UserId UserName
1 Mike
2 Bob
3 John
ProviderId UserId
1 1
2 2
1 3
Я хочу, чтобы результаты выглядели так:
ProviderName UserName1 UserName2 ...
Test Mike John
FooBar Bob
До сих пор я пытался использовать pivot для этого, но он поддерживает только Ints (и, следовательно, только Ids):
SELECT ProviderId, [1],[2],[3],[4] FROM (
SELECT p.ProviderId, u.UserId, ROW_NUMBER() OVER(PARTITION BY p.ProviderId ORDER BY p.ProviderId ASC, u.UserId ASC) as Row
FROM Provider p
left join ProviderUser pu on p.ProviderId=pu.ProviderId
left join [User] u on pu.UserId = u.UserId
) as MyTable
PIVOT
(
SUM(UserId) FOR Row IN ([1],[2],[3],[4])
) as PivotTable
ProviderId 1 2 3 4
1 2 15 18 22
2 17 23 NULL NULL
Однако мне нужно иметь возможность извлекать имена пользователей (и другие текстовые детали) из дочерних строк пользователя и добавлять их в виде столбцов для родительского элемента их поставщика.
Есть предложения по созданию этой работы?
Спасибо