根据题目输出字段要求,需要对三张表进行链接操作,即join函数两次使用;又根据bonus的构成条件,使用case when对三种btype进行计算;最后细节处理,即用round(bonus字段,1)函数对bonus取一位小数,并且用where函数筛选当前日期并且进行升序排序。 SELECT employees.emp_no, employees.first_name, employees.last_name, emp_bonus.btype, salaries.salary, ROUND( CASE WHEN emp_bonus.btype = 1 THEN salaries.salary * 0.10 WHEN emp_bonus.btype = 2 THEN salaries.salary * 0.20 ELSE salaries.salary * 0.30 END, 1 ) AS bonus FROM employees JOIN emp_bonus ON emp_bonus.emp_no = employees.emp_no JOIN salaries ON salaries.emp_no = employees.emp_no WHERE salaries.to_date = '9999-01-01' ORDER BY employees.emp_no ASC;