Вы спросили меня в комментарии к подробнее ... Ну, ваш собственный код выглядит довольно близко к тому, что вам, кажется, нужно.Попробуйте это:
a таблица макетов
DECLARE @tbl TABLE(department_id INT,employee_id INT,first_name VARCHAR(100),last_name VARCHAR(100));
INSERT INTO @tbl VALUES
(1,1,'John','Doe')
,(1,2,'Foo','Bar')
,(2,3,'some','more');
- запрос
SELECT
ves.department_id,
COUNT(1) AS count,
(SELECT
a.first_name,
a.last_name,
a.employee_id
FROM
@tbl a
WHERE
a.department_id = ves.department_id
FOR JSON PATH) AS employees
FROM
@tbl ves
GROUP BY
ves.department_id
FOR JSON PATH;
Результат
[
{
"department_id": 1,
"count": 2,
"employees": [
{
"first_name": "John",
"last_name": "Doe",
"employee_id": 1
},
{
"first_name": "Foo",
"last_name": "Bar",
"employee_id": 2
}
]
},
{
"department_id": 2,
"count": 1,
"employees": [
{
"first_name": "some",
"last_name": "more",
"employee_id": 3
}
]
}
]