この問題では、$ 100,000が使い尽くされるまで最低給与(昇順)からemployees.salaryを20%増やす必要があります。私は$ 100,000が使用されるまで、更新された金額を保存する方法の解決策を見つけるのが難しいです。これは私がこれまで持っていたものです。Oracle SQLカーソル最大金額に達するまで給与を引き上げる
declare
cursor mancur is
select salary from employees order by salary asc;
tempcur mancur%ROWTYPE;
profits number := 100000;
tempsalary employees.salary%type;
tempinc number(8,2);
begin
open mancur;
loop
fetch mancur into tempcur;
tempinc := tempcur.salary * 1.20;
tempsalary := profits - tempcur.salary;
dbms_output.put_line(tempcur.salary || ' increased by 20% ' || tempinc || ', Bonus amount left ' || tempsalary);
exit when mancur%notfound; --when 100,000 has been used
--update employees set salary = salary * 1.20 where employee_id = tempcur.employee_id;
end loop;
close mancur;
end;
/
これは生産上の問題か宿題の問題ですか?宿題の場合は、PL/SQLクラス用ですか?この要件は、単一のSQL文ではるかに効率的に解決できます。 – mathguy
また、ネクタイをどうやって扱いますか?あなたがリストに上がったとしましょう。そして今、(給与がまだ増加していない)次の従業員は、同じ給与を持つ3人の従業員です。彼らの現在の給料はそれぞれ30,000ドルであるため、それぞれ6,000ドルを受け取るべきですが、残ったのはわずか12,000ドルです。誰がどれくらい得るの? – mathguy