24. 【较难】获取所有非manager员工当前的薪水情况

获取所有非manager员工当前的薪水情况

http://www.nowcoder.com/questionTerminal/8fe212a6c71b42de9c15c56ce354bebe

思路:先找到所有非manager员工emp_no,再内连接工资表和部门表即可

select de.dept_no,a.emp_no,s.salary
from 
(select emp_no
from employees 
where emp_no not in (select emp_no
from dept_manager)
) a 
inner join dept_emp de on a.emp_no=de.emp_no
inner join salaries s on a.emp_no=s.emp_no
where s.to_date='9999-01-01'
数据分析阿宇君的SQL题解 文章被收录于专栏

数据分析的SQL题目

全部评论
s1.to_date='9999-01-01' 这个就没必要了吧 都有部门经理表了
1 回复 分享
发布于 2021-07-26 20:56
select x.dept_no,x.emp_no1,s1.salary from (select d1.emp_no as emp_no1 ,d2.emp_no as emp_no2,d1.dept_no from dept_emp as d1 left join dept_manager as d2 on emp_no1=emp_no2 ) as x join salaries as s1 on x.emp_no1=s1.emp_no where x.emp_no2=null and s1.to_date='9999-01-01'; 请问为什么我这样不对呢?
点赞 回复 分享
发布于 2020-09-26 16:56
改成is null能过
点赞 回复 分享
发布于 2020-10-21 16:57
为什么最后的条件是限定在salaries表中的to_data呢?
点赞 回复 分享
发布于 2021-12-09 15:32
我的答案是这样的,可以通过,请大神帮忙看看有没有错误,谢谢 select de.dept_no, e.emp_no, s.salary from employees as e join dept_emp as de on e.emp_no=de.emp_no join salaries as s on de.emp_no=s.emp_no where e.emp_no not in (select emp_no from dept_manager)
点赞 回复 分享
发布于 2022-07-05 10:33
先把有manager和没有manager的员工按照题目的要求得出来。 连接部门表和员工表,工资表和员工表,从中选取部门,员工编号和工资 接下来解决非manager的问题,manager表为对应员工编号和manager,所以找出有manager的员工,然后not in一下就可以,得到新表格a。 再用a替换上面的employees即可。
点赞 回复 分享
发布于 2024-10-14 11:14 广东

相关推荐

sagima:然后这个帖子又登上了
点赞 评论 收藏
分享
MScoding:你这个实习有一个是当辅导老师,这个和找技术岗没有关系吧?
点赞 评论 收藏
分享
Dream_coding:你是不是只投大厂了
点赞 评论 收藏
分享
评论
72
4
分享

创作者周榜

更多
牛客网
牛客企业服务