MySQL запрос, дающий 5% бонус сотруднику, чья зарплата меньше средней зарплаты - PullRequest
0 голосов
/ 18 апреля 2020

Я новичок в MySQL. У меня есть таблица с именем Сотрудник и столбец Зарплата . Я пытаюсь дать 5% бонуса к таблице сотрудников, чья зарплата ниже средней зарплаты. Я не знаю, где я сделал ошибки. Может кто-нибудь сказать мне, где это не так?

Я пробовал это SQL: обновить набор сотрудников оклад = оклад * 1,05, где оклад <(выберите avg (оклад) от работника) </p>

Ответы [ 2 ]

2 голосов
/ 18 апреля 2020

Вы также можете обойти эту ошибку, используя соединение:

UPDATE employee e1
INNER JOIN (SELECT AVG(salary) AS avg_salary FROM employee) e2
SET salary = 1.05 * salary
WHERE salary > avg_salary;
1 голос
/ 18 апреля 2020

Mysql имеет эту странную функцию для операторов UPDATE, и вы не можете напрямую ссылаться на обновленную таблицу, поэтому вам нужно вложить подзапрос в другой:

update employee 
set salary = salary * 1.05 
where salary < (select salary from (select avg(salary) salary from employee) t )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...