为员工长工资。从最低工资调起每人长10%,请计算长工资的人数和长工资后的工资总额,并输出输出长工资人数及工资总额。
/*
為員工長工資。從最低工資調起每人長10%,但工資總額不能超過50萬元,
請計算長工資的人數和長工資后的工資總額,并輸出輸出長工資人數及工資總額。
可能的sql:
select empno,sal from emp?? order by sal ;
select sum(sal) into s_sal? from emp;
update
*/
set serveroutput on
declare
?--定義一個光標代表所有的員工
?cursor c1 is select empno,sal from emp order by sal;
?--定義兩個變量保存光標中的值
?pempno emp.empno% TYPE;
?psal?? emp.sal% TYPE;
?
?--計數器保存工資總額
?pSalTotal number;
?--漲工資人數的計數器
?pEmpCount number := 0;
begin
? --初始化工資總額
? select sum(sal) into pSalTotal from emp;
? open c1;
? loop
??? exit when pSalTotal>70000;
??? --從光標中取值
??? fetch c1 into pempno, psal;
??? exit when c1%notfound;
???
??? --給員工漲工資
??? update emp set sal = sal * 1.1 where empno= pempno;
??? --統計人數
??? pEmpCount := pEmpCount + 1;
??? --漲工資后的總額
??? pSalTotal := pSalTotal + psal * 0.1;
? end loop;
? close c1;
?
? --提交
? commit;
?
? --輸出結果
? dbms_output.put_line('漲工資的人數' || pempcount);
? dbms_output.put_line('漲工資后的總額' || pSalTotal);
? dbms_output.put_line('------------------------');
end;
/
?
?
?
?
總結
以上是生活随笔為你收集整理的为员工长工资。从最低工资调起每人长10%,请计算长工资的人数和长工资后的工资总额,并输出输出长工资人数及工资总额。的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 瑞芯微芯片和海思芯片哪个好 分别来看一下
- 下一篇: 实例3:按部门统计工资人数