2013-03-08 64 views
-1

我有一個報告的要求,以確定哪個帳號與特定的自動VIN。 該報告需要一些類似於t-sql中的「Like」的搜索或過濾標準。例如,如果一個人查找以「231Z9」結尾的VIN,則他/她需要過濾VIN列,「VIN Like'%231Z9%'」,以查看是否有任何匹配。 它還需要客戶名和客戶姓氏的過濾器。最後, 過濾器不應該嵌入到sql中,並且在應用時需要爲「或」而不是「與」。 任何建議將不勝感激。謝謝如何使用SSRS中的某些過濾條件生成報告?

+1

你有什麼試過?你有沒有嘗試過使用一個參數,這個參數在你的查詢中是LIKE的一部分? – SQLMason 2013-03-08 17:40:11

回答

0

編寫一個存儲過程,返回給您報告的結果數據集。對存儲過程給出的參數可以在SSRS報告中查看,並且可以嵌入到SQL中。

要爲報告指定相同的參數,你可以使用報表參數選項SSRS

0
  1. 創建VIN

    文本變量
  2. 的名字

  3. 創建一個文本變量爲姓氏創建一個文本變量

  4. 設置一個數據集,其謂詞爲

    Select (things) 
    from (object) 
    Where VIN like '%' + @VIN + '%' or 
        FirstName like '%' + @FirstName + '%' or 
        LastName like '%' + @LastName + '%' 
    
+0

嗨djangojazz,非常感謝您的建議。這是我做了什麼至今CREATE PROCEDURE Account_VIN_Lookup VIN INT, 姓VARCHAR(50), 姓氏VARCHAR(50) 作爲 開始 選擇(我的列)從(我的表)當VIN LIKE '%' + VIN +'%'或名字如'%'+名字+'%'或姓氏如'%'+姓氏+'%'。我不認爲這會起作用,因爲我沒有把我的varibales引用到列中。你介意教我嗎?謝謝 – poshak 2013-03-08 19:43:39

+0

我只是堅持一個選擇,我給你用你想要的列代替我的(東西),用你的表格,視圖或表格函數替換(對象)。恕我直言,在教學過程中添加另一層複雜性是過度的。 – djangojazz 2013-03-08 20:00:25

0

我假設的「過濾器不應該被嵌入到SQL」你的意思是,標準必須的參數,而不是硬編碼。存儲過程對此很有幫助。

如果您創建一個檢索所需數據的參數化存儲過程,請在使用該存儲過程作爲源的新SSRS報告中設置一個DataSet。報告參數將自動生成以對應存儲過程參數。您可以編輯報告參數(對於用戶友好的標籤,控制它們是可選還是必需等)

這是假設您的報告將通過網絡訪問。如果您的報告將成爲客戶端應用程序的一部分(而不是Web應用程序),則實際上有更多可用選項可用。