두 가지 방법으로 풀었음
1. 서브쿼리를 이용하는 방법
select c.company_code, c.founder, (select count(distinct l.lead_manager_code) from Lead_Manager l where c.company_code=l.company_code), (select count(distinct s.senior_manager_code) from Senior_Manager s where c.company_code=s.company_code), (select count(distinct m.manager_code) from Manager m where c.company_code=m.company_code), (select count(distinct e.employee_code) from Employee e where c.company_code=e.company_code) from Company c group by c.company_code, c.founder order by c.company_code asc;
|
2. 모든 테이블을 한 번에 불러와서 쿼리하는 방법
select c.company_code, c.founder, count(distinct l.lead_manager_code), count(distinct s.senior_manager_code), count(distinct m.manager_code), count(distinct e.employee_code) from Company c, Lead_Manager l, Senior_Manager s, Manager m, Employee e where c.company_code = l.company_code and c.company_code = s.company_code and c.company_code = m.company_code and c.company_code = e.company_code group by c.company_code, c.founder order by c.company_code asc;
|