#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: в любое время 🙂