Друзья ..заявление Дело в том, где положение не работает
Я использую хранимую процедуру, в которой есть дополнительный параметр @equal и значение по умолчанию NULL. Если пользователь дает некоторое значение параметру, запрос SQL должен быть изменен. Я пытаюсь использовать предложение Case in Where. но это показывает некоторую ошибку. Помогите мне с правильным синтаксисом или с лучшей логикой
Мое требование Когда пользователь не дает значение для @equal затем
FiscalYear < @yr
Else
FiscalYear < = @ год
Select BankCode,(SUM(Debit)-SUM(Credit)) Amt
From vwDailyData
Where [email protected] and FiscalYear< (CASE WHEN @equal IS NULL THEN @yr ELSE '='[email protected])
and BankCode<>'Cash'
Group By BankCode
Модифицированный Вопрос
Select BankCode,(SUM(Debit)-SUM(Credit)) Amt
From vwDailyData
Where [email protected] AND (CASE WHEN @equal IS NULL THEN FiscalYear < @yr ELSE FiscalYear <= @yr END)
and BankCode<>'Cash'
Group By BankCode
Сообщение об ошибке Msg 102, уровень 15, состояние 1, процедура spDisplayBankConsolidate, строка 14 Неверный синтаксис рядом с '<'.
Или вы могли бы использовать ... 'И CASE КОГДА @equal IS NULL THEN FiscalYear <@yr ELSE FiscalYear <= @yr END', если вы хотите использовать инструкцию' CASE'. –
Я получаю эту ошибку Msg 102, Level 15, State 1, Procedure spDisplayBankConsolidate, Строка 14 Неверный синтаксис рядом с '<'. Msg 102, уровень 15, состояние 1, процедура spDisplayBankConsolidate, строка 21 Неверный синтаксис рядом с ')'. –
@JineshSam Не могли бы вы разместить свой новый запрос где-нибудь? Похоже, в запросе есть отсутствующая или дополнительная скобка. – dasblinkenlight