SQL查询语句5

5、 列出所有“CLERK”(办事员)的姓名,及其部门名称,部门人数,工资等级。

◆ 确定要使用的数据表:

● emp表:姓名。

● dept表:部门名称。

● emp表:部门人数。

● salgrade表:工资等级。

◆ 确定已知的关联字段:

● 雇员和部门:emp.deptno = dept.deptno

● 雇员和工资等级:emp.sal BETWEEN salgrade.losal AND salgrade.hisal

第一步:找到所有办事员的雇员信息

SELECT e.ename FROM emp e WHERE e.job='CLERK' ;

第二步:部门名称

SELECT e.ename, d.dname FROM emp e, dept d

WHERE e.job='CLERK' AND e.deptno=d.deptno ;

第三步:统计部门人数

SELECT e.ename, d.dname, temp.count

FROM emp e, dept d, (

SELECT deptno dno, COUNT(empno) count FROM emp GROUP BY deptno ) temp

WHERE e.job='CLERK'

AND e.deptno=d.deptno

AND temp.dno=d.deptno ;

第四步:查询出工资等级

SELECT e.ename, d.dname, temp.count, s.grade

FROM emp e, dept d, (

SELECT deptno dno, COUNT(empno) count FROM emp GROUP BY deptno ) temp, salgrade s

WHERE e.job='CLERK'

AND e.deptno=d.deptno

AND temp.dno=d.deptno

AND e.sal BETWEEN s.losal AND s.hisal ;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. select * from emp; 2. select empno, ename, job from em...
    海纳百川_4d26阅读 1,961评论 0 4
  • 5.多表查询 多表查询 目的:从多张表获取数据 前提:进行连接的多张表中有共同的列 等连接 通过两个表具有相同意义...
    乔震阅读 1,344评论 0 0
  • 幕课oracle学习笔记 --!!!scott用户 --一.分组查询 --1.常用的分组函数:AVG(平均数),S...
    xiaoxiao苏阅读 1,306评论 0 5
  • 查询是数据的一个重要操作。用户发送查询请求,经编译软件变异成二进制文件供服务器查询,后返回查询结果集给用户,查询会...
    产品小正阅读 1,464评论 0 2
  • 滚汤泡春茗一壶,青香绕陋室雅儒。群芳艳百雀争鸣,君子乐饱览万书。
    蒋光头jL94430阅读 637评论 43 38