Как написать кратное условие if в запросе - PullRequest
0 голосов
/ 04 июня 2019

Я пытаюсь выполнить некоторые вычисления в SQL-запросе, но получаю синтаксическую ошибку.

select *, 
(if( balance_advance_payment>0 ) EightBktTot = EightBktTot - balance_advance_payment    balance_advance_payment = balance_advance_payment - EightBktTot     
if( EightBktTot<0 )     (       EightBktTot=0   ) ) (if( balance_advance_payment>0 )    SevenBktTot = SevenBktTot - balance_advance_payment     balance_advance_payment = balance_advance_payment - SevenBktTot     
if( SevenBktTot<0 )     (       SevenBktTot=0   ) ) (if( balance_advance_payment>0 )    SixBktTot = SixBktTot - balance_advance_payment     balance_advance_payment = balance_advance_payment - SixBktTot   
if( SixBktTot<0 )   (       SixBktTot=0     ) ) (if( balance_advance_payment>0 )    FiveBktTot = FiveBktTot - balance_advance_payment   balance_advance_payment = balance_advance_payment - FiveBktTot  
if( FiveBktTot<0 )  ( ) (EightBktTot + SevenBktTot + (SixBktTot/2) + (FiveBktTot/2)) as bed_dept_cal  from trn_details;

1 Ответ

0 голосов
/ 04 июня 2019

Вам нужно будет использовать CASE..WHEN внутри SELECT вместо IF..THEN.Таким образом, он станет вложенным сценарием CASE..WHEN для нескольких условий IF, которые у вас есть.

Я бы также предложил сначала выполнить тяжелый расчет, вывести значение в переменную, а затем перейти к простомуВЫБЕРИТЕ запрос.Это улучшит читабельность кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...