DECLARE @t1 TABLE
(
eid int NOT NULL,
ename varchar(50),
level varchar(50)
)
DECLARE @t2 TABLE
(
aid int NOT NULL,
eid int,
location varchar(50),
address_type varchar(50)
)
INSERT INTO @t1 SELECT 1, 'x', '9th'
INSERT INTO @t1 SELECT 2, 'y', '10th'
INSERT INTO @t2 SELECT 1, 1, 'india', 'permanent'
INSERT INTO @t2 SELECT 2, 1, 'US', 'temporary'
INSERT INTO @t2 SELECT 3, 2, 'Japan', 'permanent'
INSERT INTO @t2 SELECT 4, 2, 'China', 'temporary'
SELECT * FROM @t1
SELECT * FROM @t2
SELECT t1.eid, t1.ename, t2.fullLocation
FROM @t1 AS t1
INNER JOIN (
SELECT eid, COUNT(*) AS noofrecs
, fullLocation = LTRIM(RTRIM(ISNULL(STUFF(
(
SELECT DISTINCT '-' + CAST(t2.location as nvarchar(max))
FROM @t2 t2
WHERE t1.eid = t2.eid
FOR XML PATH (''), TYPE).value('.', 'nvarchar(max)'
), 1, 1, ''), '')))
FROM @t2 as t1
GROUP BY eid
) AS t2
ON t1.eid = t2.eid