Oracle Virtual Comerciant este Cazul Declarație syntex întrebare

0

Problema

La toate Înțelepciuni,

Eu sunt în prezent, folosind un modul numit comerciant Virtual în Oracle 12.1.3 cu RDBMS 11.2 a automatiza calculele excel. În esență, acesta converteste Excel logica pentru a o syntex în Oracle.

De exemplu, xxcp_cu_cpa.get_tp_rates({D1040},{D1031},{D1047},'Rata 4) înseamnă că merge la TP Ratele de masă și a obține Rata de 4.

În prezent, am următorul tabel pentru a construi cu un Caz de declarație. Eu stiu doar un Caz declarație cu 1 logic , cum ar fi cazul când to_number({D2222}) > to_number({D21111}) atunci to_number({D2226} - {D2432}) altceva to_number({D2127}) end

Regula intervalul de Volum Decalaj Aplicabile % Până la 1.000.000.000 de 1.000.000.000 de 2.40%
Până la 1,500,000,000 500,000,000 2.20%
Până la 2,000,000,000 500,000,000 1.90%
Mai sus 2,000,000,000 - 1.70%

Deci, orice feedback cu privire la construirea unui caz declarație cu cele 4 logici sunt extrem de apreciate. Vă mulțumesc !

oracle
2021-11-23 18:56:15
1

Cel mai bun răspuns

0

Puteți utiliza un CASE astfel

case when volume <= 1000000000 then 2.4
     when volume <= 1500000000 then 2.2
     when volume <= 2000000000 then 1.9 
     else 1.7 end as perc

Caz de Test

with dt as (
select 1000000000 volume from dual union all
select 1000000001 volume from dual union all
select 1500000000 volume from dual union all
select 1500000001 volume from dual union all
select 2000000000 volume from dual union all
select 2100000001 volume from dual)
select volume,
  case when volume <= 1000000000 then 2.4
       when volume <= 1500000000 then 2.2
       when volume <= 2000000000 then 1.9 
       else 1.7 end as perc
from dt;

    VOLUME       PERC
---------- ----------
1000000000        2,4
1000000001        2,2
1500000000        2,2
1500000001        1,9
2000000000        1,9
2100000001        1,7
2021-11-23 20:14:27

Vă mulțumesc Domnule ! Voi testa. Să aveți o vacanță plăcută !
Stanley Suzikya

În alte limbi

Această pagină este în alte limbi

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................