解题思路

#第一步:链接表departments,dept_emp,获取dept_no,dept_name

select d1.dept_no,d1.dept_name,d2.emp_no
from departments as d1
inner join dept_emp as d2
on d1.dept_no=d2.dept_no
where d2.to_date='9999-01-01';


#第二步:获取titles表中的title
select emp_no,title 
from titles 
where to_date='9999-01-01';

#第三步:链接上面两表
select a1.dept_no,a1.dept_name,a2.title,count(a2.title) as count
from 
(
    select d1.dept_no,d1.dept_name,d2.emp_no,d2.from_date,d2.to_date
    from departments as d1
    inner join dept_emp as d2
    on d1.dept_no=d2.dept_no
    where d2.to_date='9999-01-01') as a1

inner join 

(
    select emp_no,title,from_date,to_date 
    from titles 
    where to_date='9999-01-01')    as a2    
on a1.emp_no=a2.emp_no
where a2.to_date='9999-01-01'
group by a1.dept_no,a1.dept_name,a2.title
order by a1.dept_no;    

#注意1:记得添加过滤条件where a2.to_date='9999-01-01'
#注意2:只按部门分组,不符合题意输出结果,要添加多条件分组

实现代码

select a1.dept_no,a1.dept_name,a2.title,count(a2.title) as count
from 
(
    select d1.dept_no,d1.dept_name,d2.emp_no,d2.from_date,d2.to_date
    from departments as d1
    inner join dept_emp as d2
    on d1.dept_no=d2.dept_no
    where d2.to_date='9999-01-01') as a1

inner join 

(
    select emp_no,title,from_date,to_date 
    from titles 
    where to_date='9999-01-01')    as a2    
on a1.emp_no=a2.emp_no
where a2.to_date='9999-01-01'            
group by a1.dept_no,a2.title   
order by a1.dept_no;