[英]How to filter a SSRS report based on 2 datasources
我創建了一個存儲過程,其中有來自2個數據源的數據。 我在源A和源B之間創建了一個並集,然后將其作為數據集提供給SSRS報告。 現在,用戶希望基於源參數查看報告,這將使他們能夠基於“源A”,“源B”或“兩者”的數據源選擇/過濾報告。 因此,如果用戶選擇來源A,則報告應僅顯示來源A的數據,如果報告“兩者”,則報告將同時顯示來源A和來源B的結果。
一種方法是,我嘗試解決此問題的方法是創建3個單獨的數據集,然后使用參數。 我不確定這是否是最佳設計方法。 如果有人有更好的主意,請分享。
提前致謝 !
您可以簡單地在查詢中標記一個額外的列,其中源標識為類似
SELECT *, 'A' as Src FROM myFirstDataSource
UNION
SELECT *, 'B' as Src FROM mySecondDataSource
然后,只需在Src列上應用過濾器即可。
或者,只需在SP本身中執行此操作,方法是從報表中傳入一個參數,以確定要提取的數據,例如。
CREATE PROC myProc (@myParam varchar(1) = '') AS
DECLARE @t TABLE (Src varchar(1), ColumnA varchar(10), ColumnB int, ColumnC int)
IF (@myParam = '' OR @myParam = 'A')
BEGIN -- get data from first datasource
INSERT INTO @t
SELECT 'A', someCOlumnA, SomeColumnB, SomeColumnC FROM myFirstDataSource
END
IF (@myParam = '' OR @myParam = 'B')
BEGIN -- get data from second datasource
INSERT INTO @t
SELECT 'B', someCOlumnA, SomeColumnB, SomeColumnC FROM mySecondDataSource
END
SELECT * FROM @t
您實際上並不需要第二個選項中的Src
列,但是如果您想突出顯示數據在報表中的位置,它可能會很有用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.