Я хочу представить данные, которые получаются после объединения с другой таблицей. Он получает несколько записей для одного конкретного идентификатора. Поэтому я хочу отобразить эти несколько записей в формате JSON.
У меня есть данные ниже.
Declare @Employees Table (EmpId int, EmpName Varchar(100))
INSERT INTO @Employees
VALUES(1,'RAM')
,(2,'RAJ')
,(3,'LAXMAN')
Declare @Subjects Table (EmpId int, Subject Varchar(100))
INSERT INTO @Subjects
VALUES(1,'Maths')
,(1,'Science')
,(1,'Physics')
,(2,'Physics')
,(3,'Maths')
,(3,'Physics')
Я пытался с этим запросом.
SELECT E.EmpId
,Subject
FROM @Employees E
LEFT JOIN (
SELECT EmpId
,'{' + STUFF((
SELECT ',"' + NULLIF(Subject, '') + '"'
FROM @Subjects AS CG1
WHERE CG1.EmpId = CG2.EmpId
FOR XML PATH('')
), 1, 1, '') + '}' AS Subject
FROM @Subjects AS CG2
GROUP BY EmpId
) SUB ON SUB.EmpId = E.EmpId
Но я хочу получить такой результат.
EmpId Subject
-----------------------------------------------------
1 {"1":"Maths","2":"Science","3":"Physics"}
2 {"1":"Physics"}
3 {"1":"Maths","2":"Physics"}
Пожалуйста, дайте мне знать, если вам нужна дополнительная информация. Буду признателен за вашу помощь.
Спасибо