2

私は2つのテーブルを持っています従業員と部門

employeeの列
empid
name
salary
location

departmentの列
deptno
deptname
empid
mangerid

ここで、部門ごとに最高の給与を見つけて、2000 ずつ増やしたいと考えています。

4

3 に答える 3

1

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;
于 2012-11-30T04:51:32.353 に答える
1
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));
于 2012-11-30T04:58:13.403 に答える