Я борюсь с запросом, чтобы вернуть список менеджеров с их соответствующими сотрудникамиT-SQL - Объединить нескольких строк
У меня есть три таблицы следующим образом:
Managers
ManagerID ManagerName
1 Bob
2 Sally
3 Peter
4 George
EmployeeManager
EmployeeID ManagerID
1 1
1 1
2 2
2 2
3 3
3 3
4 4
4 4
Employees
EmployeeID EmployeeName
1 David
1 Joseph
2 Adam
2 Pete
3 Mark
3 Mavis
4 Susan
4 Jennifer
Желаемая Result Set
ManagerName CountEmployee Employees
Bob 2 David, Joseph
Sally 2 Anish, Pete
Peter 2 Mark, Mavis
George 2 Susan, Jennifer
запрос настоящее время я использую выглядит следующим образом:
Select m.ManagerName
,Count(e.EmployeeName) Over(Partition By m.ManagerID) as CountEmployee
,Rank() Over(Partition By m.ManagerID Order By em.EmployeeID) [RankEmployee]
,e.EmployeeName
From dbo.Employees e
Left Join dbo.EmployeeManager em on em.ManagerID=e.ManagerID
Left Join dbo.Managers m on m.ManagerID=em.ManagerID;
Это возвращает список менеджеров и сотрудников по отдельным строкам, но я изо всех сил пытаюсь объединить имена сотрудников в соответствии с приведенной выше таблицей.
Любые идеи или решения?
Manpaal Singh
Поиск для этого: ** имитирующей '' GROUP_CONCAT' в SQL SERVER' ** –
@msinghm Вы можете запихнуть результат to comma seperated result: http://stackoverflow.com/a/18870585/6812070 –