Как посчитать сотрудников, вовлеченных в процесс, и перечислить там имена в одной ячейке? - PullRequest
1 голос
/ 29 мая 2019

Я пытаюсь написать запрос, показывающий количество сотрудников, вовлеченных в проект, а также перечислить имена в одной ячейке.

select p.projectname, count(main.projectnr) "Involved employees" from projects_karl p
join mainpro_karl main
on main.projectnr = p.projectnr
join employees_karl m
on m.employeenr = main.employeenr
group by p.beschreibung
;

Этот запрос подсчитывает количество сотрудников, работающих в определенном проекте. Но я также хочу перечислить имена вовлеченных сотрудников.

select p.projectname, count(main.projectnr) "Anzahl beteiligter MAs", m.firstname || ' ' || m.surname "Name" from projects_karl p
join mainpro_karl main
on main.projectnr = p.projectnr
join Employees_karl m
on m.employeenr = main.employeenr
group by p.projectname, m.firstname || ' ' || m.surname
;

Этот список запросов включал сотрудников, но не в ячейке, а в отдельной строке. И функция счета больше не работает. Он просто считает «1» в каждом ряду.

1 Ответ

1 голос
/ 29 мая 2019

использование listagg()

select p.projectname, count(main.projectnr) "Anzahl beteiligter MAs", 
listagg(m.firstname || ' ' || m.surname, ',') within group (order by p.projectname) "Name" 
from projects_karl p join mainpro_karl main on main.projectnr = p.projectnr
join Employees_karl m on m.employeenr = main.employeenr
group by p.projectname
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...