簡體   English   中英

如何基於2個數據源過濾SSRS報告

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM