SQL 59) -CASE WHEN 给出员工及其奖金信息

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

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

方法)CASE WHEN 求出bonus
  • 给出emp_no、first_name、last_name、奖金类型btype、对应的当前薪水情况salary以及奖金金额bonus
  • bonus类型btype为1其奖金为薪水salary的10%,btype为2其奖金为薪水的20%,其他类型均为薪水的30%
  • 当前薪水表示to_date='9999-01-01'
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 bonus
FROM emp_bonus AS eb, employees AS e, salaries AS s
WHERE eb.emp_no = e.emp_no
AND s.emp_no = e.emp_no
AND s.to_date='9999-01-01';


SQL 文章被收录于专栏

SQL

全部评论
直接(0.1*btype*salary)这样不好么= =
1 回复 分享
发布于 2021-09-17 16:26
bonus结果保留一位小数怎么体现呀?
4 回复 分享
发布于 2022-04-05 11:40
请问这里为什么写10%报错,只能写0.1?
1 回复 分享
发布于 2021-05-06 11:08
那万一奖金3.1415926你怎么办
1 回复 分享
发布于 2022-03-27 11:46
这些答案都不考虑发奖金的时间吗 能过时因为就一个例子 99年的绩效怎么能用今天的工资来发奖金呢
点赞 回复 分享
发布于 2021-12-02 11:18
是不是只要在emp_bonus表中的都是有奖金的,只是奖金多少不一样
点赞 回复 分享
发布于 2022-01-25 08:48
请问这种算连接吧。是99语法吗?
点赞 回复 分享
发布于 2022-02-11 02:51
为什么不需要join就可以做出来呢?这个语法哪里能总结一下?
点赞 回复 分享
发布于 2023-11-03 16:58 北京
round(s.salary*0.1,1) 保留小数为一位。要限制一下,题目要求了
点赞 回复 分享
发布于 2024-07-20 14:49 江苏
请问这里from和where and是表连接的一种方式吗
点赞 回复 分享
发布于 2024-09-08 15:33 上海
题目并不严谨,如果一个人获得不止一次奖金,那么是不是乘以他的次数才行?如果按照题解来看的,求的应该是当前薪资的奖金才对
点赞 回复 分享
发布于 02-08 15:01 湖南

相关推荐

讯飞老萌新:站住!有人25还没有找到工作的吗
点赞 评论 收藏
分享
评论
43
2
分享

创作者周榜

更多
牛客网
牛客企业服务