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

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

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

1.连接employees,emp_bonus,salaries三张表,限制salaries的to_date字段='9999-01-01'。最后选出所需字段并用case将btype分出三种情况并分别算出bonus。

select e.emp_no, e.first_name, e.last_name, eb.btype, s.salary,
(case
when eb.btype = 1 then s.salary * 0.1
when eb.btype = 2 then s.salary * 0.2
else s.salary * 0.3
end) as bonus
from employees as e, emp_bonus as eb, salaries as s
where e.emp_no = eb.emp_no and 
      e.emp_no = s.emp_no and s.to_date = '9999-01-01'     

2.和第一种办法逻辑相同,但将case换成了两层if嵌套。

select e.emp_no, e.first_name, e.last_name, eb.btype, s.salary,
if(eb.btype = 1, s.salary * 0.1, if(eb.btype = 2, s.salary * 0.2, s.salary * 0.3)) as bonus
from employees as e, emp_bonus as eb, salaries as s
where e.emp_no = eb.emp_no and 
      e.emp_no = s.emp_no and s.to_date = '9999-01-01' 
全部评论

相关推荐

今天 15:02
门头沟学院 Java
点赞 评论 收藏
分享
吴offer选手:下午mt一来就告警说项目来不及,估计明天拿了权限就要参与开发了 已老实
实习生的蛐蛐区
点赞 评论 收藏
分享
06-07 19:59
门头沟学院 C++
补药卡我啊😭:都快15年前的了还在11新特性
你的简历改到第几版了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务