oracle 找子表,oracle多表查询和子查询练习

5268f80b9b1e01f982625ef6fac83ca1.png

--1.列出至少有三个员工的所有部门和部门信息。

SELECT D.DEPTNO, D.DNAME, D.LOC, T.COUNTS

FROM DEPT D, (SELECT DEPTNO, COUNT(*) COUNTS FROM EMP GROUP BY DEPTNO) T

WHERE D.DEPTNO = T.DEPTNO

AND T.COUNTS >= 3;

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

SELECT E.EMPNO, E.ENAME, D.DNAME

FROM EMP E, EMP M, DEPT D

WHERE E.MGR = M.EMPNO

AND E.HIREDATE < M.HIREDATE

AND E.DEPTNO = D.DEPTNO;

--3.列出职位为“CLERK”的员工姓名和其所在部门名称,部门人数:

SELECT e.ename,d.dname,t.counts

FROM emp e, dept d,

(SELECT deptno de, COUNT(*) counts FROM emp GROUP BY deptno )t

WHERE e.deptno = d.deptno AND e.deptno = t.de AND e.job = ‘CLERK‘;

--4.列出和“SCOTT”从事相同工作的所有员工及部门名称:

SELECT E.*, D.DNAME

FROM EMP E, DEPT D

WHERE E.DEPTNO = D.DEPTNO

AND E.JOB = (SELECT JOB FROM EMP WHERE ENAME = ‘SCOTT‘);

--5.列出每个部门工作的员工数量、平均工资和平均服务期限(单位为年)

SELECT DEPTNO "部门编号",

COUNT(EMPNO) "人数",

ROUND(AVG(SAL)) "平均薪资",

ROUND(AVG(MONTHS_BETWEEN(SYSDATE, HIREDATE))/12) "服务年限"

FROM EMP

GROUP BY DEPTNO;

--6、列出各个部门的MANAGER 的最低薪金:

SELECT deptno, MIN(sal) FROM emp WHERE job = ‘MANAGER‘ GROUP BY deptno;

--7、给任职日期超过10年的人加薪10%;

SELECT E.*, E.SAL * 1.1

FROM EMP E

WHERE (MONTHS_BETWEEN(SYSDATE, HIREDATE)) / 12 > 10;

oracle多表查询和子查询练习

标签:员工   sys   tween   count   ott   部门   months   clerk   姓名

1428d0e076c3959ab11d28a39bc84fab.png

5268f80b9b1e01f982625ef6fac83ca1.png

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:http://www.cnblogs.com/huguangqin/p/7532832.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值