14、列出所有员工及领导的姓名

文章提供了一系列SQL查询例子,包括:找出雇用日期早于直接上级的员工、列出所有部门及其员工信息(包括无员工的部门)、部门员工数超过5个的列表、薪金高于SMITH的员工、CLERK职位员工及其部门信息以及薪金最低起点超过1500的工作及人数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

select b.ENAME as 员工,b.EMPNO,e.EMPNO ,e.ename as 领导
from emp e join emp b                   
where e.EMPNO = b.mgr 

15. 列出受雇日期早于其直接上级的所有员工的编号,姓名,部门名称

哪些员工比上级来更早,把领导更早的null清掉  连接部门表查出

select 
    a.ename '员工', a.HIREDATE, d.DNAME '部门编号', b.ename '领导',b.HIREDATE
from
    emp a
left join
    emp b
on
    a.mgr = b.empno and  a.HIREDATE > b.HIREDATE 
join          
               dept d 
on 
      a.DEPTNO=d.DEPTNO

HAVING b.ENAME is not null

 

16、 列出部门名称和这些部门的员工信息, 同时列出那些没有员工的部门

所有员工 连接部门表 注意右连部门,把没展示出的部门展示出来
 

 
select e.*,d.DNAME
from 
    emp  e right JOIN dept  d
on 
    e.DEPTNO=d.DEPTNO


17、列出至少有 5 个员工的所有部门
按照部门编号分组, 筛选出 部门员工个数 >= 5

select EMPNO,DEPTNO   
from emp  
GROUP BY DEPTNO 
HAVING COUNT(DEPTNO)>=5

18、列出薪金比"SMITH" 多的所有员工信息

-- 连接查询
select ee.*
from 
    emp e 
join 
    emp ee
WHERE 
    e.ENAME='SMITH' and ee.sal>e.sal
 

-- 嵌套查询
select *
from 
    emp 
where 
    sal>(select SAL from emp  WHERE  ENAME='SMITH')

19、 列出所有"CLERK"( 办事员) 的姓名及其部门名称, 部门的人数

连接部门表展示名称  job =办事员

-- 先得到clerk相关信息
select e.ename,e.job,d.dname,e.DEPTNO 
FROM emp e join dept d 
WHERE e.job='CLERK' AND e.deptno=d.DEPTNO


--各部门人数
select COUNT(EMPNO) ce,deptno from emp GROUP BY DEPTNO


--按照部门合并
 select t.*,eee.ce
from   (select COUNT(EMPNO) ce,deptno from emp GROUP BY DEPTNO)as eee
JOIN   (select e.ename,e.job,d.dname,e.DEPTNO FROM emp e join dept d WHERE e.job='CLERK' AND e.deptno=d.DEPTNO)as t
WHERE eee.deptno=t.DEPTNO

20.列出最低薪金大于 1500 的各种工作(哪些工作最少1500起)    及从事此工作的全部雇员人数
 先查出工作,再统计人数

 
select sal,job,count(EMPNO)
from emp 
GROUP BY job 
HAVING min(sal) >1500

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值