select e.emp_no,e.first_name,e.last_name,eb.btype,s.salary,
round((case eb.btype
when 1 then round(0.1*s.salary,1)
when 2 then 0.2*s.salary
else 0.3*s.salary end) , 1) bonus
from employees e
inner join
emp_bonus eb
on e.emp_no=eb.emp_no
inner join
salaries s
on s.emp_no=e.emp_no
and s.to_date='9999-01-01'
order by e.emp_no
SELECT
column1,
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
ELSE default_result
END AS new_column
FROM table;
- 以及round四舍五入控制数字位数
- 同时考察表的连接
- 只有在bonus表中的员工才会有奖金
- 连接要以bonus表为准