I have table e as
eId FName LName Type SubType
1 a aa 1 S11a
1 a aa 1 S12a
1 a aa 1 S13a
1 a aa 3 S31a
1 a aa 3 S32a
2 b bb 1 S11b
2 b bb 1 S12b
2 b bb 3 S31b
2 b bb 3 S32b
I want to get a table like this
eId FName LName SubType1 SubType2
1 a aa S11a;S12a;S13a S31a;S32a
2 b bb S11b;S12b S31b;S32b
In other words, I want to run a sql query that gives me subtypes group by employees, as two columns for type 1 and type 2. I am trying to work with STUFF command in sql query but wasn’t successful. This is the query I wrote but it doesn’t work. Basically it gives me Null values for SubType columns.
SELECT e1.eId, e1.FName, e1.LName
, STUFF((
SELECT N'; ' + [SubType]
FROM e e2
WHERE e1.eId = e2.eId
AND e1.FName = e2.FName
AND e1.LName = e2.LName
AND e1.[Type] = e2.[Type]
AND e1.[Type] = 1
FOR XML PATH ('')), 1, 2, '') AS SubType1
, STUFF((
SELECT N'; ' + [SubType]
FROM e e2
WHERE e1.eId = e2.eId
AND e1.FName = e2.FName
AND e1.LName = e2.LName
AND e1.[Type] = e2.[Type]
AND e1.[Type] = 3
FOR XML PATH ('')), 1, 2, '') AS SubType2
FROM e e1
GROUP BY e1.eId, e1.FirstName, e1.LastName, e1.[Type]