首先,理解题意,这道题的输出很明确,前五个字段emp_no,first_name,last_name,btype,salary很容易获取,所以这道题的题意很明确,你怎么给我算出bonus,并把这几个字段放在一个表中
第一步怎么求bonus,当是用salaries表连接bonus表,使用case语句来求了
如下:
select s.emp_no,btype,salary,( case btype // 用case查询对应的bonus when 1 then salary*0.1 when 2 then salary*0.2 else salary*0.3 end) bonus from salaries s,emp_bonus eb where s.emp_no=eb.emp_no and s.to_date='9999-01-01'
第二步求出了case之后,设上面的查询结果为表 L,那么表L连接表employees,连接条件为emp_no,就可以查出来所有的东西了。
如下:
select
e.emp_no,e.first_name,e.last_name,
l.btype,l.salary,l.bonus
from employees e
inner join L on l.emp_no=e.emp_no;