获得平均薪资低于平均水平的员工

问题描述 投票:1回答:3

我需要得到fname,lname,员工的工资,即使在加薪10%之后,他们的工资也比平均工资低400.00美元。

我能够得到薪水低于平均工资的员工,但我不确定如何在加薪后获得400美元以下的员工。

我正在使用MySQL。谢谢。

select AVG(salary) from employee; #gives me the average salary
select Fname, Lname, Salary, 1.10*Salary as NewSalary
from employee; 
#gives me names, old salary and salary raised.

这给了我的员工薪水低于平均工资:

select Fname, Lname, Salary
from employee
where Salary < (select AVG(salary) from employee);

我在想这样的事,但这不起作用;未知栏目新闻报道:

select Fname, Lname, Salary, 1.10*Salary as NewSalary
from employee
where NewSalary - (select AVG(salary) from employee) = 400 ;
mysql sql database select where-clause
3个回答
1
投票

你有正确的想法,你不能像这样在where子句中使用别名。只是直接使用公式,你应该没事。另外,你应该使用<=,而不是=

select Fname, Lname, Salary, 1.10 * Salary as NewSalary
from   employee
where  1.10 * Salary - (select AVG(salary) from employee) <= 400;

0
投票

选择Fname,Lname,Salary,1.10 *薪水为员工的NewSalary((1.10 *薪水) - (从员工中选择AVG(薪水)))<= 400;


0
投票

您可以使用HAVING通过一个语句执行此操作

select Fname, Lname, AVG(salary * 1.10)    
FROM employee
GROUP BY FNAME, LNAME 
HAVING (AVG(salary) * 1.10) = 400

但我不明白表中员工平均工资的概念。您可能正在寻找一组员工的平均工资?或者你可能正在存储工资的历史值,但我再次看不出计算平均值的目的。

© www.soinside.com 2019 - 2024. All rights reserved.