2013-05-24 4 views
0

Моей таблицы, содержащие столбцы как нижезацикливание в оракула PLSQL

+-------------------+ 
|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; 
+0

вы должны попробовать что-то первый .. .если у него есть ошибки/проблемы, тогда переговоры –

+1

смотрите RATIO_TO_REPORT. –

ответ

0

Это можно сделать с помощью простого запроса UPDATE:

update sample_table set amount = total_amount * percentage/100; 

Но если вам нужно PLSQL петли вы можете использовать курсор для 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; 
Смежные вопросы