以下は、私のテーブルリクエストの条件です。
level of till 300$ 301-500$ 501-3400$
credit card
usage in
3 month
0% 0% 0% 0%
1-30% 30% 0% 0%
31-50% 50% 0% 0%
51-60% 50% 15% 0%
61-70% 100% 15% 0%
70%~ 100% 30% 30%
私の仕事は、PL SQL を使用して、上記のすべての情報を 1 つのテーブルで取得することです。client_id、level_3m、credit_limit の 3 つの列で構成されるテーブル Request があるので、出力 (たとえば) は上記の情報を使用して次のようになります。
level_3m credit_limit($) new_limit(%)
0 50 0
45 400 0
45 250 50
65 350 15
80 1500 30
私はこれまでに何をしましたか?ここに私自身のスクリプトがあります:
DECLARE
v_level VARCHAR2(100);
v_credit_limit VARCHAR2(100);
v_id VARCHAR2(100);
new_limit VARCHAR2(100);
BEGIN
SELECT level_3m,
credit_limit
INTO v_level, v_credit_limit
FROM request a
WHERE v_id = a.client_id;
--this is for "till 300$" condition
IF v_level = 0
AND v_credit_limit =< 300 THEN
new_limit := 0;
ELSIF v_level >= 1
AND v_level <= 30
AND v_credit_limit =< 300 THEN
new_limit := 30;
ELSIF v_level >= 31
AND v_level <= 50
AND v_credit_limit =< 300 THEN
new_limit := 50;
ELSIF v_level >= 51
AND v_level <= 60
AND v_credit_limit =< 300 THEN
new_limit := 50;
ELSIF v_level >= 61
AND v_level <= 70
AND v_credit_limit =< 300 THEN
new_limit := 100;
ELSIF v_level >= 70
AND v_credit_limit =< 300 THEN
new_limit := 100;
END IF;
END;
/
--the other conditions were written same manner as the above one.
私は PL/SQL を初めて使用するので、私の状態が正しいか教えてください。または、これらの条件を記述する別のより簡単な方法はありますか?