程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> DB2數據庫 >> DB2教程 >> 查詢出每個雇員的姓名,工資,部門名稱,工資在公司的等級及其領導的姓名,領導的工資,以及領導所對應的等級

查詢出每個雇員的姓名,工資,部門名稱,工資在公司的等級及其領導的姓名,領導的工資,以及領導所對應的等級

編輯:DB2教程

查詢出每個雇員的姓名,工資,部門名稱,工資在公司的等級及其領導的姓名,領導的工資,以及領導所對應的等級


如題:

查詢出每個雇員的姓名,工資,部門名稱,工資在公司的等級及其領導的姓名,領導的工資,以及領導所對應的等級

這是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);

vcu8v7w6PC9wPgo8cD7I57n70qq9q8nPw+bH87XDtcS94bn7sLTI59H5yr3P1Mq+uaTXyrXEtci8tqOs06a4w8jnus7Ktc/WPC9wPgo8cD4xOiAgILXazuW1yLmk18o8L3A+CjxwPjI6ICAgtdrLxLXIuaTXyjwvcD4KPHA+MzogICC12sj9tci5pNfKPC9wPgo8cD40OiAgILXatv61yLmk18o8L3A+CjxwPjU6ICAgtdrSu7XIuaTXyjwvcD4KPHA+tMvKsda7xNzTw0RFQ09ERSgpuq/K/cC0yrXP1jwvcD4KPHA+PHByZSBjbGFzcz0="brush:sql;">SELECT e.ename, e.sal, d.dname, decode(g.grade,5,'第一等工資',4,'第二等工資',3,'第三等工資',2,'第四等工資',1,'第五等工資') e_grade, s.ename mgr_name, s.sal mgr_sal, decode(g2.grade,5,'第一等工資',4,'第二等工資',3,'第三等工資',2,'第四等工資',1,'第五等工資') 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)



  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved