приращение условия if и счетчика

#if-statement #counter #conditional-statements #increment

#оператор if #счетчик #условные операторы #приращение

Вопрос:

Что не так с этим условием if?

   if ((@rent_amt_h <> '0.000') or (@house_payment_amt_h <> '0.000') or (@insurance_amt_h <> '0.000')or (@property_taxes_amt_h <> '0.000') or  (@gas_amt_u <> '0.000') or (@elec_amt_u <> '0.000') or (@otherfuel_amt_u <> '0.000') or (@Trash_Collection_amt_u <> '0.000') or (@Sewerage_amt_u <> '0.000') or (@Telephone_amt_u <> '0.000') or (@water_amt_u <> '0.000') or (@other_house_amt_h <> '0.000') or (@other_amt_u <> '0.000') or (@total_u <> '0.000'))

                           begin
                 SET @APPSHELTER_COUNT  =  (select Count(APP_ID) FROM ext_app_group_other_expenses (nolock)  WHERE APP_ID = @App_Id )
               end
               else
               begin
                 SET @APPSHELTER_COUNT  =  0
               end
  

Он увеличивает значение @APPSHELTER_COUNT, даже если значения в условии if равны нулю!. Он никогда не устанавливает значение в 0?

Спасибо за вашу помощь.

Комментарии:

1. в вашем операторе if есть 14 предложений — их трудно прочитать и невозможно поддерживать

Ответ №1:

Что это за язык? В любом случае, создается впечатление, что вы сравниваете числа со строками. Попробуйте убрать кавычки вокруг ваших нулей. Например, @rent_amt_h <> 0 вместо @rent_amt_h <> '0.000' . Кроме того, если это какой-то SQL, убедитесь, что вы NULL правильно обрабатываете, потому что NULL != 0 .

Комментарии:

1. @userstackoverflow: в любое время 🙂