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

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

https://www.nowcoder.com/practice/5cdbf1dcbe8d4c689020b6b2743820bf?tpId=82&&tqId=29827&rp=1&ru=/exam/oj&qru=/exam/oj&sourceUrl=%2Fexam%2Foj%3Ftab%3DSQL%25E7%25AF%2587%26topicId%3D82%26page%3D1

左连接生成奖金表,然后筛选出有奖金的员工

1、左连接生成奖金表,left join;
2、筛选出有奖金的员工,btype > 0 ,注意有默认值,btype 是none 值不是null值。
select 
e.emp_no
,e.first_name
,e.last_name
,b.btype
,s.salary
,round(s.salary * b.btype / 10,1) bonus -- round 函数四舍五入返回一位小数
from employees e
left join emp_bonus b
on e.emp_no = b.emp_no
left join ( -- 左连接生成奖金表
    select 
    emp_no
    ,salary
    from salaries
    where to_date = '9999-01-01'
          ) s
on s.emp_no = e.emp_no

where b.btype > 0 -- 有奖金的人btype>0,注意不是null值
order by e.emp_no

全部评论

相关推荐

评论
点赞
收藏
分享
牛客网
牛客企业服务