2017-01-30 51 views
0

我正在開發一個報告Web應用程序,它根據指定的標準顯示報告。如何將完整'where'子句條件傳遞給SSRS報告?

SELECT名字,姓氏WHERE ID> 100 AND PIN> 200

因此,在web應用程序,將有一個文本框,其中用戶將輸入 「ID> 100且PIN> 200」。 下一次,用戶將鍵入「ID> 100 AND PIN> 200或代碼< 30」。 用戶可以自由輸入文本框中的任何條件。

如何在SSRS中將此條件應用於報表查詢?

+1

請注意,這可能是一個可怕的想法。您至少應該 - 允許他們從下拉框中的字段中選擇並驗證值,然後在代碼中構建Where子句。按照現狀,這可能會導致重大的安全和性能問題,這取決於用戶的能力。如果他們正在編寫純SQL查詢,爲什麼不讓他們使用管理工作室呢? – Milney

+0

謝謝@Milney。我知道它可能導致的安全問題,但這個屏幕只會讓管理員配置報告。 – Nands

回答

0

您可以使用動態SQL

DECLARE @sql VARCHAR(max) SET @sql = 'SELECT FirstName, LastName FROM MyTable ' + CASE WHEN @Criteria <> ' ' THEN 'WHERE ' + @Criteria ELSE ' ' END EXEC(@sql)

+0

謝謝@niktrs。我已經做了否定前-1的+1。 – Nands

+0

謝謝Nands。我會同意米爾尼從安全角度來看這不是一個好主意,所以要謹慎。 – niktrs

+0

我懇請任何人不同意我的解決方案,以提供評論或更好的選擇。謝謝 – niktrs

相關問題