思路1:题目可以发现奖金类型与奖金比例的关系是btype*0.1,所以可以直接计算。(这里要用*0.1,不能用/10,否则会报错)
select e.emp_no ,e.first_name ,e.last_name ,b.btype ,s.salary ,(s.salary*b.btype*0.1) as bonus from employees e join salaries s on e.emp_no=s.emp_no join emp_bonus b on e.emp_no=b.emp_no where s.to_date='9999-01-01';
思路2:用case进行分类。
select e.emp_no ,e.first_name ,e.last_name ,b.btype ,s.salary ,case when b.btype=1 then s.salary*0.1 when b.btype=2 then s.salary*0.2 else s.salary*0.3 end as bonus from employees e join salaries s on e.emp_no=s.emp_no join emp_bonus b on e.emp_no=b.emp_no where s.to_date='9999-01-01';思路3:先把每个奖金类型的分别按输出格式查出来,最后用union拼接。