2016-03-01 120 views
0

我正在处理Microsoft SQL Server报告生成器报告,我遇到了一个我似乎无法克服的问题。MS SQL Server报告生成器报告其中子句参数

我的报告是大学课程的列表。我需要能够显示所有的课程或者只能显示普通教育课程的课程。

有一门课程属性可以与课程相关联。所有普通课程都有一个课程属性,由#后面跟3个字母组成。

的解决方案似乎是通过创建一个参数非常简单,将通过其中#%或%到我的查询像这样的WHERE子句:

  • WHERE factClassAttributes.CourseAttribute LIKE“#%”(创编辑课程)
  • WHERE factClassAttributes.CourseAttribute LIKE“%”(所有课程)

我不指望有什么,有些课程没有一门课程的属性和使用%不包括与空记录课程属性值。

然后我想我会尝试设置一个参数,其中包含作为一个值的WHERE子句和作为其他值的null。这会生成一个通用的“rsErrorExecutingCommand”错误消息。

有没有人有任何建议如何完成这不是没有WHERE子句创建一个相同的报告?

感谢

回答

1

要么使用一个可选的参数:

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

或动态更换空:

WHERE ISNULL(factClassAttributes.CourseAttribute,'%') LIKE '#%' 
+0

这并不让我我需要什么,这是可能是因为我的问题这个问题的背景并不清楚。我真正需要知道的是,如果可以将整个WHERE子句作为SQL Server Report Builder中的参数传递,或者有一种方法来编写LIKE子句以返回空和非空记录。 –