Я ищу, чтобы создать запрос SQL Server, который объединит ресурсы с одной и той же Задачей в одну строку строки/записи, используя три таблицы. Мой запрос SQL Server ниже, похоже, работает некорректно и занимает очень много времени, а затем ошибки. Благодаря!SQL - объединение нескольких строк данных в одну строку и столбец
Таблица Задача
TaskUID
TaskName
Назначение Таблица
TaskUID
ResourceUID
Таблица ресурсов
ResourceUID
ResourceName
Перед
**Task Name Resource Name**
Weapon Launch Amy
Weapon Launch Sam
Weapon Launch Marisa
Weapon Launch Katy
Weapon Launch John
Sweating Tears Marisa
Sweating Tears Joe
Sweating Tears Katy
Sweating Tears Michael
Ramp Diver Joe
Ramp Diver Michael
После
**Task Name Resource Name**
Weapon Launch Amy; Sam; Marisa; Katy; John
Sweating Tears Marisa; Joe; Katy; Michael
Ramp Diver Michael; Joe
Запрос
SELECT T.TaskName,
STUFF((SELECT ', ' + R.RESOURCENAME
FROM
[Resource Table] R
LEFT JOIN [Assignment Table] A ON R.ResourceUID=A.ResourceUID
WHERE
A.TASKUID=T.TaskUID
Group by R.RESOURCENAME
FOR XML PATH('')), 1, 1,'') Resources
FROM [Task Table] T
INNER JOIN [Assignment Table] A ON T.TASKUID=A.TASKUID
Верните три набора результатов и скрежете их вместе. Это самый простой способ. – Will
См. [This SO post] (http://stackoverflow.com/questions/273238/how-to-use-group-by-to-concatenate-strings-in-sql-server) для того, как это сделать. –
Вы можете создать агрегатную функцию, используя сборку. – Nizam