【发布时间】:2014-06-13 16:43:49
【问题描述】:
我要根据TechnicianName 将多个表中的一个列值加入到行中:
我有 4 张桌子
easy_tbljobcard、easy_tbltechnician和easy_tblproblem和easy_tbltechnicianMaster我在第二列从
easy_tbltechnicianMaster得到TechnicianName,其中technicianId存在于easy_tbltechnician我希望
STUFF在我的查询的第三列 (p.ProblemReported)
当前 SQL 语句:
SELECT j.CardID,
, (SELECT TechnicianName FROM easy_tbltechnicianMaster WHERE TechnicianID = t.technicianID) AS TechnicianName
, p.ProblemReported
FROM easy_tbljobcard AS j
JOIN easy_technician AS t ON t.CardID = j.CardID
LEFT JOIN easy_tblproblem AS p ON p.CardID = t.CardID
查询结果:
╔══════════╦══════════════════╦═══════════════════╗
║ CardID ║ TechnicianName ║ ProblemReported ║
╠══════════╬══════════════════╬═══════════════════╣
║ 1 ║ AKBAR ║ PROBLEM A ║
║ 1 ║ AKBAR ║ PROBLEM B ║
║ 1 ║ AKBAR ║ PROBLEM C ║
║ 1 ║ ASANKA ║ PROBLEM A ║
║ 1 ║ ASANKA ║ PROBLEM B ║
║ 1 ║ ASANKA ║ PROBLEM C ║
╚══════════╩══════════════════╩═══════════════════╝
上面的结果应该转换成这个:
╔══════════╦══════════════════╦═════════════════════════════════╗
║ CardID ║ TechnicianName ║ ProblemReported ║
╠══════════╬══════════════════╬═════════════════════════════════╣
║ 1 ║ AKBAR ║ PROBLEM A, PROBLEM B, PROBLEM C ║
║ 1 ║ ASANKA ║ PROBLEM A, PROBLEM B, PROBLEM C ║
╚══════════╩══════════════════╩═════════════════════════════════╝
如何在连接多个表时执行此操作?
【问题讨论】:
-
@Clockwork-Muse 我认为它不是重复的.. 你能不能给我提供一个例子,你可以用分隔符将列分组在一行中,特别是在加入多个表时,正如我在加入多个表时所说的那样表格
标签: sql sql-server sql-server-2008 tsql sql-server-group-concat