题解 | #获取有奖金的员工相关信息。#

获取有奖金的员工相关信息。

http://www.nowcoder.com/practice/5cdbf1dcbe8d4c689020b6b2743820bf

【思路】
1.要想得到表中的btype和salary是比较简单的,用表连接就可以得到
2.最后用 case when生成bonus
【代码如下】
select t1., t2.salary, case
when t1.btype=1 then salary
0.1
when t1.btype=2 then salary0.2
else salary
0.3
end as bonus
from
(select e.emp_no, e.first_name, e.last_name, eb.btype from employees as e inner join emp_bonus as eb on e.emp_no = eb.emp_no) as t1
left join
(select s.emp_no, s.salary from salaries as s where s.to_date = '9999-01-01') as t2
on t1.emp_no = t2.emp_no
最初在生成t1表时用了left join出错,因为可能有员工没有bonus,因此要用inner join。

全部评论

相关推荐

猪扒已出闸:方向不够聚焦,看不出来是想找什么方向的工作
点赞 评论 收藏
分享
尊嘟假嘟点击就送:加v细说,问题很大
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务