编写一个PL/SQL块,输出所有比本部门平均工资高的员工 信息。

这个不会做哦~... 这个不会做哦~ 展开
 我来答
liutianlin2
2017-04-25 · TA获得超过233个赞
知道小有建树答主
回答量:83
采纳率:0%
帮助的人:33.1万
展开全部
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;
上海沪光
2011-12-08 · TA获得超过127个赞
知道答主
回答量:143
采纳率:0%
帮助的人:70.8万
展开全部
你这个查询是在一个表中吗?表信息也不表露出来.....
select * from 表 where sal>(select avg(sal) from 表 where 部门='A')
你把这条语句加到PL/SQL块中试试吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zzhd7
2011-12-08 · 超过13用户采纳过TA的回答
知道答主
回答量:66
采纳率:0%
帮助的人:38万
展开全部
select * from emp where
sal > (select avg(sal) from emp
where dno in
(select distinct dno from emp)
group by dno)

很久没有用oracle了忘记了 EMP 的结构了 我这里是把部门号算在EMP里的 大体上应该就是我这个方法解决 你理解下思路 可能有语法错误 希望能帮到你
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
紫神姬
2011-12-08 · 超过10用户采纳过TA的回答
知道答主
回答量:23
采纳率:0%
帮助的人:21.2万
展开全部
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');
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式