5、 列出所有“CLERK”(辦事員)的姓名,及其部門名稱,部門人數,工資等級。
◆ 確定要使用的數據表:
● emp表:姓名。
● dept表:部門名稱。
● emp表:部門人數。
● salgrade表:工資等級。
◆ 確定已知的關聯字段:
● 雇員和部門:emp.deptno = dept.deptno
● 雇員和工資等級:emp.sal BETWEEN salgrade.losal AND salgrade.hisal
第一步:找到所有辦事員的雇員信息
SELECT e.ename FROM emp e WHERE e.job='CLERK' ;
第二步:部門名稱
SELECT e.ename, d.dname FROM emp e, dept d
WHERE e.job='CLERK' AND e.deptno=d.deptno ;
第三步:統計部門人數
SELECT e.ename, d.dname, temp.count
FROM emp e, dept d, (
SELECT deptno dno, COUNT(empno) count FROM emp GROUP BY deptno ) temp
WHERE e.job='CLERK'
AND e.deptno=d.deptno
AND temp.dno=d.deptno ;
第四步:查詢出工資等級
SELECT e.ename, d.dname, temp.count, s.grade
FROM emp e, dept d, (
SELECT deptno dno, COUNT(empno) count FROM emp GROUP BY deptno ) temp, salgrade s
WHERE e.job='CLERK'
AND e.deptno=d.deptno
AND temp.dno=d.deptno
AND e.sal BETWEEN s.losal AND s.hisal ;