私は2つのテーブルを持っています従業員と部門
表employee
の列
empid
name
salary
location
表department
の列
deptno
deptname
empid
mangerid
ここで、部門ごとに最高の給与を見つけて、2000 ずつ増やしたいと考えています。
ed: はは、あなたが実際に行を更新するつもりだったとは思いもしませんでした。値を取得したいだけだと思っていました。@Ajith Sasidharanの答えはより完全なものです。
部門テーブルが従業員テーブルを参照するのではなく、逆に参照するのは奇妙に思えますが、これはあなたが望むことをするはずです:
SELECT
d.deptno,
d.deptname,
max(e.salary+2000)
FROM
department d
INNER JOIN
employee e
ON
e.empid = d.empid
GROUP BY
d.deptno, d.deptname;
update emp
set sal = sal + 2000
where empid in (
select empid from dept where (deptno,sal) in (
select d.deptno,max(e.sal)
from emp e,
dept d
where e.empid = d.empid
group by deptno));