计算百分比

时间:2010-04-27 00:19:03

标签: sql oracle

嗨,这段代码给了我员工的薪水和经理薪水。

SELECT E.EMP_FNAME AS MANAGER, E.EMP_SALARY, D.DEPT_NO, A.EMP_FNAME AS EMPLOYEE, A.EMP_SALARY
 FROM EMPLOYEE E, EMPLOYEE A, DEPARTMENT D
 WHERE E.EMP_NIN = A.EMP_MANAGER
 AND A.EMP_MANAGER = D.EMP_MANAGER;

![alt text] [1]

我怎样才能只显示薪水在经理薪水10%以内的员工?

1 个答案:

答案 0 :(得分:1)

假设您希望允许员工的收入超过他们的经理(您知道会在不同的,更好的世界中发生),只需将其包含在WHERE子句中:

AND  A.SALARY BETWEEN (E.SALARY * 0.9) and (E.SALARY * 1.1)

修改

这使用简单的数学。 0.9 = 90%和1.1 = 110%;此行将结果集限制为EMPLOYEE记录,其中SALARY为其经理SALARY的+/- 10%。如果你确定员工的收入永远不会超过他们的经理那么你需要比测试更简单......

AND  A.SALARY >= (E.SALARY * 0.9)