Показать отрицательное значение для определенного поля - PullRequest
0 голосов
/ 04 марта 2020

У меня есть небольшой набор, где, когда есть строка с '_Negative', тогда окончательные данные должны быть только '-data 1' (data2 всегда будет нулевым).

, если _Negative не существует, тогда «Окончательные данные» должны быть суммой (data1) -сумма (data2)

Фактическое значение

enter image description here

Обязательное значение

enter image description here

Ответы [ 2 ]

0 голосов
/ 04 марта 2020

Вы, похоже, хотите получить выражение case:

select t.*,
       (case when region like '%_Negative'
             then data1 - data2
             else 0
        end) as final_data
from t;

Примечание. Это не преобразуется в целое число. Это представляется желательным на основе данных, но не на основе описания проблемы.

0 голосов
/ 04 марта 2020
With
A as (select sum(data1)-sum(data2) as final_data 
      from your_table 
      where region1 not like '%_Negative'),
B as (select -data1 as final_data 
      from your_table 
      where region1 like '%_Negative')
Select your_table.*
  ,(case when region1 not like  '%_Negative' 
         then a.final_data 
         else b.final_data 
     end) final_data 
from your_table,a,b
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...