【发布时间】:2012-10-29 02:47:44
【问题描述】:
我需要做以下问题,
编写一个程序,将所有获得收入的员工的工资降低 10% 低于目前的平均工资。 将表 EMP 的内容视为“所有员工”。让您的程序打印第一个的姓名和薪水 工资略低于平均水平的人。
解决问题的方法应该是什么?
编写一个程序,将所有收入低于当前平均工资的员工的工资降低 10%。
CREATE OR REPLACE PROCEDURE UPDATE_EMP IS
BEGIN
UPDATE EMP
SET SAL= SAL-(SAL*0.1)
WHERE SAL<(SELECT AVG(SAL) FROM EMP);
END;
还有另一个: 让您的程序打印工资略低于平均水平的第一个人的姓名和工资。
SELECT e.ename
, e.sal
from
(select ename
, sal
from emp
where sal < (select avg(sal)
from emp
)
order by sal desc
)e
where ROWNUM =1;
现在我需要连接两者.. 我该怎么做...
【问题讨论】:
-
请用您目前编写的代码更新问题。
-
编写一个程序,将所有收入低于当前平均工资的员工的工资降低 10%。
-
@Hoque:只要写一个游标,它会获取当前工资低于当前平均工资的员工。在循环中首先放置一个 dbms 语句,该语句将打印该 emp 详细信息,然后下一条语句将 emp 的薪水更新为 10%。我不知道您为什么要为此创建多个程序。如果您提到其他内容,请相应地编辑您的问题
-
@GauravSoni 我不知道.. 我以为我必须在单个存储过程中编写多个选择语句。
-
@HoqueMaqsud: 不知道 :( ,你在你的问题中指定你已经写了子问题,它们是什么?