方法一:

思路:

使用员工编号为限定条件将三表联结查询,还有限定时间为当前。

然后,嵌套两个if处理薪水情况

其中bonus类型btype为1其奖金为薪水salary的10%,btype为2其奖金为薪水的20%,其他类型均为薪水的30%。

代码:

select
    eb.emp_no,
    e.first_name,
    e.last_name,
    eb.btype,
    s.salary,
    s.salary * if (eb.btype = 1, 0.1, if (eb.btype = 2, 0.2, 0.3)) bonus
from
    emp_bonus eb
    left join employees e on eb.emp_no = e.emp_no
    left join salaries s on eb.emp_no = s.emp_no
    And s.to_date = '9999-01-01'