【发布时间】:2017-05-22 18:46:22
【问题描述】:
如何创建一个返回float(ChargeTotal)的函数?
ChargeTotal 基于使用批次数的累进表。
num of batches | charge
----------------------------
1-10 | 0
11-20 | 50
21-30 | 60
31-40 | 70
40+ | 80
如果批次数为 25 则
num of batches | charge
----------------------------
1-10 | 0
11-20 | 50*10
21-30 | 60*5
----------------------------
total | 800 <number I need to be returned(ChargeTotal)
到目前为止,我已经想出了以下内容,但我不确定如何获得每个循环的总数,或者是否可以执行多个 FOR 语句:
CREATE OR REPLACE FUNCTION ChargeTotal
RETURN FLOAT IS
total FLOAT;
BEGIN
FOR a in 1 .. 10 LOOP
FOR a in 11 .. 20 LOOP
FOR a in 21 .. 30 LOOP
FOR a in 40 .. 1000 LOOP
RETURN Total;
END ChargeTotal;
【问题讨论】:
-
你有没有尝试过?
-
我假设我可以使用 FOR...LOOP 但我不确定语法,因为我需要一个计数器或其他东西来跟踪何时进入下一段.我只是从一个循环开始并添加,但希望有人能让我朝着正确的方向前进。
标签: oracle function loops plsql progressive