Voici la condition pour ma demande de table.Manière correcte d'écrire des conditions PL SQL
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%
Ma tâche consiste à récupérer toutes les informations que j'ai mentionnées ci-dessus dans une table en utilisant PL SQL. Je demande la table qui se compose de 3 colonnes comme client_id, level_3m et credit_limit Ainsi, la sortie (par exemple) devrait ressembler à ceci en utilisant les informations ci-dessus:
level_3m credit_limit($) new_limit(%)
0 50 0
45 400 0
45 250 50
65 350 15
80 1500 30
Qu'ai-je fait jusqu'à présent? Voici mon propre script:
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.
Je suis nouveau à PL/SQL alors dites-moi s'il vous plaît est mon état droit? Ou y a-t-il un autre moyen plus simple d'écrire ces conditions?
Je pense que vous pouvez rechercher une solution avec 'cas'. Je ne sais pas bien pl sql mais ça existe. –
voulez-vous dire utiliser cas-quand condition? – user2082503
Oui, même si je ne le connais pas très bien, je pense que ça peut t'aider. Essayez de lire et de voir dans les documentations si cela va vous aider. –