SQL语句查询4

4、列出受雇日期早于其直接上级的所有员工的编号、姓名、部门名称、部门位置、部门人数。

◆确定要使用的数据表:

●emp表:编号、姓名。

●emp表:找到领导的雇佣日期。

●dept表:部门名称、部门位置。

●emp表:统计出部门人数。

◆确定已知的关联字段:

●雇员和领导:emp.mgr = memp.empno

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

第一步:实现emp表的自身关联,找到受雇日期早于其直接上级的所有员工的编号、姓名

SELECT e.empno, e.ename

FROM emp e, emp m

WHERE e.mgr=m.empno(+)

AND e.hiredate

第二步:找到部门信息

SELECT e.empno, e.ename, d.dname, d.loc

FROM emp e, emp m, dept d

WHERE e.mgr=m.empno(+)

AND e.hiredate

AND e.deptno=d.deptno ;

第三步:在FROM子句里面统计出部门人数

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

FROM emp e, emp m, dept d, (

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

WHERE e.mgr=m.empno(+)

AND e.hiredate

AND e.deptno=d.deptno

ANDtemp.dno=d.deptno ;

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

推荐阅读更多精彩内容

  • 1. select * from emp; 2. select empno, ename, job from em...
    海纳百川_4d26阅读 1,958评论 0 4
  • 5.多表查询 多表查询 目的:从多张表获取数据 前提:进行连接的多张表中有共同的列 等连接 通过两个表具有相同意义...
    乔震阅读 1,330评论 0 0
  • SQL ==SQLPLUS== DML(Data Manipulation Language,数据操作语言)---...
    蝌蚪1573阅读 617评论 0 4
  • 查询是数据的一个重要操作。用户发送查询请求,经编译软件变异成二进制文件供服务器查询,后返回查询结果集给用户,查询会...
    产品小正阅读 1,461评论 0 2
  • 苏霍姆林斯基曾说过,“儿童就其天性来讲,是富有探索精神的探索者,是世界的发现者”。因此,我们的阅读教学也应...
    Dairy丹阅读 532评论 0 0