我希望能够返回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
到目前为止,我尝试使用透视表来实现此操作,但它只支持整数(因此仅支持ID):
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
然而,我需要能够从用户子行中获取用户名(和其他文本细节),并按其提供者父级将它们作为列附加。
有什么建议可以使这项工作顺利完成吗?
谢谢。