4个回答
展开全部
declare
begin
for v_emp in(
select dept.dname,X.b,emp.ename,emp.sal
from emp
join (select deptno a,round(avg(sal),2) b
from emp
group by deptno) X
on emp.deptno=X.a
and emp.sal>X.b
join dept
on emp.deptno=dept.deptno
order by emp.deptno desc)
loop
dbms_output.put_line('部门名称为:'||v_emp.dname||';平均薪资为:'||v_emp.b||
';高于该部门平均工资的员工为:'||v_emp.ename||';该员工工资为:'||v_emp.sal);
end loop;
end;
begin
for v_emp in(
select dept.dname,X.b,emp.ename,emp.sal
from emp
join (select deptno a,round(avg(sal),2) b
from emp
group by deptno) X
on emp.deptno=X.a
and emp.sal>X.b
join dept
on emp.deptno=dept.deptno
order by emp.deptno desc)
loop
dbms_output.put_line('部门名称为:'||v_emp.dname||';平均薪资为:'||v_emp.b||
';高于该部门平均工资的员工为:'||v_emp.ename||';该员工工资为:'||v_emp.sal);
end loop;
end;
展开全部
你这个查询是在一个表中吗?表信息也不表露出来.....
select * from 表 where sal>(select avg(sal) from 表 where 部门='A')
你把这条语句加到PL/SQL块中试试吧
select * from 表 where sal>(select avg(sal) from 表 where 部门='A')
你把这条语句加到PL/SQL块中试试吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select * from emp where
sal > (select avg(sal) from emp
where dno in
(select distinct dno from emp)
group by dno)
很久没有用oracle了忘记了 EMP 的结构了 我这里是把部门号算在EMP里的 大体上应该就是我这个方法解决 你理解下思路 可能有语法错误 希望能帮到你
sal > (select avg(sal) from emp
where dno in
(select distinct dno from emp)
group by dno)
很久没有用oracle了忘记了 EMP 的结构了 我这里是把部门号算在EMP里的 大体上应该就是我这个方法解决 你理解下思路 可能有语法错误 希望能帮到你
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
SELECT *
FROM EMPLOYEES E
WHERE E.DEPARTMENT_ID= EMP.DEPARTMENT_ID
AND E.SALARY > (SELECT AVG(EMP.SALARY)
FROM EMPLOYEES EMP
WHERE EMP.DEPARTMENT_ID='abc');
FROM EMPLOYEES E
WHERE E.DEPARTMENT_ID= EMP.DEPARTMENT_ID
AND E.SALARY > (SELECT AVG(EMP.SALARY)
FROM EMPLOYEES EMP
WHERE EMP.DEPARTMENT_ID='abc');
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询