Если я вас правильно понимаю, вы хотите показать все Города в одном столбце для сотрудника. Итак, вы хотите GROUP BY и CONCAT .
Используя Sql Server 2005, попробуйте это (рабочий пример)
DECLARE @Employee TABLE(
EmployeeId INT,
NAME VARCHAR(100)
)
INSERT INTO @Employee (EmployeeId,[NAME]) SELECT 1, 'A'
INSERT INTO @Employee (EmployeeId,[NAME]) SELECT 2, 'B'
DECLARE @Address TABLE(
Street VARCHAR(50),
City VARCHAR(50),
EmployeeId INT
)
INSERT INTO @Address (Street,City, EmployeeId) SELECT 'A','A', 1
INSERT INTO @Address (Street,City, EmployeeId) SELECT 'B','B', 1
INSERT INTO @Address (Street,City, EmployeeId) SELECT 'C','C', 1
INSERT INTO @Address (Street,City, EmployeeId) SELECT 'D','D', 2
INSERT INTO @Address (Street,City, EmployeeId) SELECT 'E','E', 2
INSERT INTO @Address (Street,City, EmployeeId) SELECT 'F','F', 2
SELECT e.EmployeeId,
e.[NAME],
(
SELECT al.City + ','
FROM @Address al
WHERE al.EmployeeId = e.EmployeeId
FOR XML PATH('')
)
FROM @Employee e
GROUP BY e.EmployeeId,
e.[NAME]