oracle复杂查询(二)

列出在每个部门工作的员工数量、平均工资和平均工作月数

SELECT d.DNAME,t.sumPerson,t.avgSal,t.avgTime FROM DEPT d,
(SELECT DEPTNO dno, count(EMPNO) sumPerson,trunc(avg(sal)) avgSal,trunc(avg(months_between(sysdate,HIREDATE))) avgTime
FROM EMP GROUP BY DEPTNO) t WHERE t.dno(+)=d.DEPTNO ORDER BY 1

 

列出所有部门的详细信息和部门人数。
SELECT d.DEPTNO,d.dname,d.LOC,t.count FROM DEPT d,
(SELECT count(EMPNO) count,DEPTNO dno FROM EMP GROUP BY DEPTNO) t
WHERE t.dno=d.DEPTNO

 

列出各种工作的最低工资及从事此工作的雇员姓名
SELECT e.EMPNO,e.ENAME,e.SAL FROM EMP e,
(SELECT min(sal) min,job FROM EMP GROUP BY job) t
WHERE t.JOB=e.JOB AND e.SAL=t.min

 

查出某个员工的上级主管及所在部门名称,并要求出这些主管中的薪水超过2500。
SELECT DISTINCT d.DEPTNO,e.SAL,e.ENAME FROM DEPT d,EMP e,EMP e2
WHERE e2.MGR=e.EMPNO AND e.DEPTNO=d.DEPTNO AND e.SAL>2500

 

列出所有员工的年工资,所在部门名称,按年薪从低到高排序。
SELECT e.ENAME, e.SAL*12,d.DNAME FROM EMP e,DEPT d WHERE e.DEPTNO=d.DEPTNO ORDER BY 2

 



posted @ 2018-11-25 21:03  大熊不清新  阅读(399)  评论(0编辑  收藏  举报