Как рассчитать значение с кодом для конкретной формулы в Oracle SQL? - PullRequest
0 голосов
/ 09 декабря 2018

У меня Oracle SQL-запрос.В результате я получаю что-то вроде этого:

CODE || VALUE
I || 10
II || 30
III || 50
IV || -20
V || 60
VII || -45
VIII || 0
IX || 100
X || 0

Далее я хочу для CODE = X создать формулу типа:

CASE 1:

SUM OF I,II,III,IV,V,IX

CASE 2:

I+II+III-IV-V+IX

Как я могу реализовать эту формулу в SQL-запросе?

Ответы [ 2 ]

0 голосов
/ 09 декабря 2018
      select sum(value) from table where code not like 'VI%'   
      Union
      select sum(case when code in ('IV', 'V' ) then -value
      else value end case) from table where code not like 
        'VI%'   

Просто другой способ сделать то же самое, что и выше, через объединение

0 голосов
/ 09 декабря 2018

Вы бы использовали агрегацию:

select sum(case when code in ('I', 'II', 'III', 'IV', 'V', 'IX') then value else 0 end) as case1,
       sum(case when code in ('I', 'II', 'III', 'IX') then value
                when code in ('IV', 'V') then -value
                else 0
           end) as case2
from t;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...