如果我理解正確,您希望在員工的單個列中顯示所有城市。所以你希望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]
你能否提供更多的表模式的? – 2010-01-13 13:19:38