【发布时间】:2013-06-09 04:45:30
【问题描述】:
我有 3 个表格,我正在尝试创建报告...
Table MP (data table)
mID col1 col2
1 data1 data2
2 data3 data4
3 data5 data6
Table MPU (user table)
uID UserName
1 user1
2 user2
3 user3
Table MPR (lookup table)
rID uID mID
1 1 2
2 2 2
3 1 1
这是我需要的基本选择逻辑:
Select
MP.mID
,MP.col1
,MP.col2
,MPU.UserName --format as 'user1, user2, user3' ...
From MP
left join MPR on MPR.mID = MP.mID
left join MPU on MPU.uID = MPR.uID
我需要按照代码中的注释将用户名字符串添加到一起。
一些数据行将没有用户,而其他数据行可能有多达 10 个。
我不希望像现在这样填充多行。
编辑:
注意 - SQL 2000
【问题讨论】:
-
您可能想尝试 COALLESCE.. 它将所有非空用户名汇集在一起...我将不得不查找格式并稍后发布
-
有多种解决方案,例如this,用于创建逗号分隔列表。仅供参考:您的示例
MP表没有rID列,但您的查询使用它。 -
该解决方案仅适用于 2005 年及更新版本。我很幸运能在 2000 年工作。-也固定加入。
标签: sql tsql sql-server-2000