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 '#%'