如題:
查詢出每個雇員的姓名,工資,部門名稱,工資在公司的等級及其領導的姓名,領導的工資,以及領導所對應的等級
這是oracle的默認Scott用戶下面的emp,dept 和 salgrade 表間的一道思考題。
分析:先明確工資等級表(salgrade)中的內容
select * from salgrade;
再查詢查詢出每個雇員的姓名,工資,部門名稱,工資在公司的等級(salgrade)
SELECT distinct e.ename,e.sal,d.dname,g.grade e_grade FROM emp e,dept d,salgrade g,emp s WHERE (e.deptno=d.deptno) AND (e.sal BETWEEN g.losal AND g.hisal);
在此上基礎上增加查找上司姓名
SELECT e.ename,e.sal,d.dname,g.grade,s.ename FROM emp e,dept d,salgrade g,emp s WHERE (e.deptno=d.deptno) AND (e.sal BETWEEN losal AND hisal) AND (s.empno=e.mgr);
最後確定雇員的經理姓名,經理的工資,以及經理工資所對應的等級
SELECT e.ename,e.sal,d.dname,g.grade e_grade,s.ename mgr_name,g2.grade m_grade FROM emp e,dept d,salgrade g,emp s,salgrade g2 WHERE (e.deptno=d.deptno) AND (e.sal BETWEEN g.losal AND g.hisal) AND (s.empno=e.mgr) AND (s.sal BETWEEN g2.losal AND g2.hisal);