SQL查询语句5
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 ;