
4、列出受雇日期早于其直接上級的所有員工的編號、姓名、部門名稱、部門位置、部門人數(shù)。
◆確定要使用的數(shù)據(jù)表:
●emp表:編號、姓名。
●emp表:找到領(lǐng)導(dǎo)的雇傭日期。
●dept表:部門名稱、部門位置。
●emp表:統(tǒng)計(jì)出部門人數(shù)。
◆確定已知的關(guān)聯(lián)字段:
●雇員和領(lǐng)導(dǎo):emp.mgr = memp.empno
●雇員和部門:emp.deptno = dept.deptno
第一步:實(shí)現(xiàn)emp表的自身關(guān)聯(lián),找到受雇日期早于其直接上級的所有員工的編號、姓名
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子句里面統(tǒng)計(jì)出部門人數(shù)
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 ;