MS SQL Server Report Builder сообщает, где параметр предложения

Я работаю над отчетом построителя отчетов Microsoft SQL Server и столкнулся с проблемой, которую не могу решить.

Мой отчет - это список занятий в колледже. Мне нужно иметь возможность отображать либо все курсы, либо только те, которые являются общеобразовательными курсами.

Существует атрибут курса, который может быть связан с курсом. Все общие курсы имеют атрибут курса, состоящий из #, за которым следуют 3 буквы.

Решение оказалось довольно простым, создав параметр, который передавал бы либо%, либо% в предложение WHERE моего запроса следующим образом:

  • ГДЕ factClassAttributes.CourseAttribute LIKE '#%' (общие курсы)
  • ГДЕ factClassAttributes.CourseAttribute LIKE '%'(все курсы)

На что я не рассчитывал, так это на то, что некоторые курсы не имеют атрибута курса и использование% не включает записи с нулевым значением атрибута курса.

Затем я подумал, что попробую установить параметр, содержащий предложение WHERE в качестве одного значения и ноль в качестве другого значения. Это генерирует общее сообщение об ошибке "rsErrorExecutingCommand".

Есть ли у кого-нибудь какие-либо предложения о том, как этого добиться, кроме создания идентичного отчета без предложения WHERE?

Спасибо

1 ответ

Либо используйте необязательный параметр:

WHERE ((@param1 IS NULL) OR (factClassAttributes.CourseAttribute LIKE @param1 +'%'))

Или динамически заменить нули:

WHERE ISNULL(factClassAttributes.CourseAttribute,'%') LIKE '#%'
Другие вопросы по тегам