with employeed_salary as (
    select
        emp_no,
        salary
    from 
        salaries
    where 
        to_date = '9999-01-01'
),

employeed_salary_bonus as (
    select
        e_s.emp_no,
        e_s.salary,
        e_b.btype,
        case e_b.btype
            when 1 then round(e_s.salary * 0.1,1)
            when 2 then round(e_s.salary * 0.2,1)
            else round(e_s.salary * 0.3,1)
        end as bonus
    from 
        employeed_salary as e_s
    left join 
        emp_bonus as e_b
    on 
        e_s.emp_no = e_b.emp_no
    having 
        e_b.btype is not null
)

select
    e_s_b.emp_no,
    e.first_name,
    e.last_name,
    e_s_b.btype,
    e_s_b.salary,
    e_s_b.bonus
from 
    employeed_salary_bonus as e_s_b
left join 
    employees as e
on 
    e_s_b.emp_no = e.emp_no