Как использовать псевдонимы или переменные для сравнения значений в SQL - PullRequest
0 голосов
/ 11 апреля 2019

Я устанавливаю псевдонимы SQL в качестве переменных, чтобы заменить приведенную ниже формулу Excel

=+IF((O2+Z2)=0,0,+IF(AA2=0,(O2*-1),+IF(AND(AA2>0,(((R2*O2)/(O2+Z2))+H2)<= (O2*-1)),(O2*-1),(((R2*O2)/(O2+Z2))+H2))))

Выше приведена формула для уплаты налога по району, но мне нужно проверить в SQL, если столбец AA (Баланс) равен нулю, затем задайте 0

, т. е. городской налог отрицательным числом, т. е. этот бит формулы (IF (AA2 = 0, (O2 * -1)). Если AA (Balance) не равен 0, формулаработает хорошо, но если он равен нулю, он не рассчитывается должным образом

1 Ответ

1 голос
/ 11 апреля 2019

Используйте оператор CASE, например:

CASE 
  WHEN Balance = 0 THEN -- some value, or a formula
  WHEN Balance < 0 THEN -- maybe some other value, or a formula  
  ELSE -- another value, or formula
END AS Something

Если вы хотите применить это к какой-то сложной формуле, вы можете использовать подзапрос:

SELECT CASE
         WHEN Balance = 0 THEN 0
         ELSE Something / Balance
       END AS SomethingDividedByBalance
  FROM (SELECT -- huge formula ending with AS Balance
             , -- another formula AS Something
          FROM yourTables
     ) subquery
...