我有一个表员工,列id_departament和这样的薪水:
user
我想构建一个查询,以增加 ONLY 每个部门的最高工资10%,如果加上10%后的工资高于25000,那么我的工资必须是25 000,在我的例子中,从第4部分的最高工资中加入10%后,将从24000增加到25000。
我的代码:
salary ID
10000 3
20000 3
8000 2
5000 1
24000 4
20000 1
5000 2
7500 4
到目前为止,我有这段代码,但收到的错误是:
update angajati set salariul = case when salariul+10/100*salariul<25000
then salariul+10/100*salariul else 25000
end where salariul = (select MAX(salariul) from angajati group by
id_departament);
答案 0 :(得分:0)
这是返回多行的查询
SELECT Max(salariul)
FROM angajati b
GROUP BY id_departament
要解决此问题,您需要correlate
sub-query
UPDATE angajati A
SET salariul = CASE
WHEN salariul + 10 / 100 * salariul < 25000 THEN
salariul + 10 / 100 *
salariul
ELSE 25000
END
WHERE salariul = (SELECT Max(salariul)
FROM angajati b
WHERE a.id_departament = b.id_departament);