我尝试编写一个查询,向我显示一个项目中涉及的员工人数,并在一个单元格中列出那里的姓名。
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”。
答案 0 :(得分:1)
使用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