0

我的表有如下列

+-------------------+
|Percentage   Amount|
+-------------------+
|50           3000  |
|20           2000  |
|15           1500  |
|15           1500  |
+-------------------+

我想根据我将在我的程序中传递的TotalAmount更新每行的数量。

示例:如果我给出 50000,那么它将根据表中的百分比重新计算金额(3000 将像这样更新为 25000...)。

如何从每一行获取百分比的值并计算数量并更新它?

CREATE PROCEDURE P_SAMPLE
(
    TOTAL_AMOUNT  NUMBER
)

AS

BEGIN
    UPDATE LOGIC...
END;
4

1 回答 1

0

可以通过简单的 UPDATE 查询来完成:

update sample_table set amount = total_amount * percentage/100;

但是如果你需要 PLSQL 循环,你可以使用 Cursor FOR LOOP :

for x in (select distinct percentage from sample_table) loop
  update sample_table set AMOUNT = total_amount * x.percentage/100 
  where percentage = x.percentage;
  dbms_output.put_line(x.percentage || ': ' || total_amount * x.percentage/100);
end loop;
于 2013-05-24T06:27:00.547 回答