子查询

课后作业 1.查询工资高于编号为7782的员工工资,并且和7369号员工从事相同工作的员工的编号、姓名及工资。

select empno, ename, job from emp where sal>(select sal from emp where empno=7782) and job=(select job from emp where empno=7369)

2.查询工资最高的员工姓名和工资。
SELECT ename ,sal from emp where sal =(SELECTMAX(sal) from emp )

3.查询部门最低工资高于10号部门最低工资的部门的编号、名称及部门最低工资。
SELECTdept.deptno,dept.dname,MIN(sal)from emp join dept on emp.deptno=dept.deptno GROUP BY dept.deptno,dept.dname HAVING MIN(sal) > (SELECT min(sal )from emp where deptno =10)

4.查询员工工资为其部门最低工资的员工的编号和姓名及工资。
SELECT empno,ename,sal from emp where sal in (SELECT MIN(sal) from emp GROUP BY deptno)

5.显示经理是KING的员工姓名,工资。
SELECT ename,sal from emp WHEREmgr in (SELECTempno from empwhere ename = 'KING')

6.显示比员工SMITH参加工作时间晚的员工姓名,工资,参加工作时间。
SELECT ename ,sal,hiredate from emp where hiredate > (SELECT hiredate fromemp where ename = 'SMITH')

7.使用子查询的方式查询哪些职员在NEW YORK工作。
SELECT enamefrom emp where deptno= (SELECT deptno from dept where loc ='NEW YORK')

8.写一个查询显示和员工SMITH工作在同一个部门的员工姓名,雇佣日期,查询结果中排除SMITH。
SELECT ename,hiredatefrom emp where dEPtno = (SELECT deptno from emp where ename = 'SMITH') AND ENAME NOT IN ( 'SMITH ' )

9.写一个查询显示其工资比全体职员平均工资高的员工编号、姓名。
SELECT empno, enamefrom emp wheresal >(SELECT AVG(sal) from emp )

10.写一个查询显示其上级领导是King的员工姓名、工资。
SELECTename ,salfrom emp where mgr in (SELECT EMPNO from emp where ename = 'KING' )

11.显示所有工作在RESEARCH部门的员工姓名,职位。
SELECTename ,jobFROM EMPjoindeptondept.deptno= emp.deptno where dname = 'RESEARCH'

12.查询每个部门的部门编号、平均工资,要求部门的平均工资高于部门20的平均工资。
SELECTdeptno ,AVG( sal)from emp GROUP BY deptno HAVING AVG( sal)>( SELECT AVG( sal) from emp where deptno=20)

【子查询】13.查询大于自己部门平均工资的员工姓名,工资,所在 部门平均工资,高于部门平均工资的额度。
SELECTa.ename,a.sal, b.sr , a.sal - b.srFROMemp a join (SELECT deptno,AVG( sal) sr from emp GROUP BY deptno) b on a.deptno=b.deptno where a.sal >b.sr

14.列出至少有一个雇员的所有部门。

15.列出薪金比"SMITH"多的所有雇员.

16.列出入职日期早于其直接上级的所有雇员.

17.找员工姓名和直接上级的名字。

18.显示部门名称和人数.

19.显示每个部门的最高工资的员工

    推荐阅读