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