2016-03-01 322 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子句以返回空和非空記錄。 –