2017-05-26 103 views
1

所以我一直在研究一段時間的報告。我仍然是一個noob,所以我不知道如何處理我目前的問題,這是重複的參數值。處理SSRS參數中的重複項

下面是我的參數的屏幕截圖。 Paramater一個參數下拉與我的程序有關,而另一個是活動。正如你所看到的,當選擇兩個程序時,都會出現「Basics for」的重複。

這是我的數據庫的一個片段。 Database將不同的ID附加到兩個不同的程序。

最後,這裏是我的參數的代碼。

計劃:

SELECT distinct 
A.ProgramID, A.ProgramName 

FROM dwh.Bks_DWH_Programs A 
INNER JOIN dwh.Bks_DWH_OrgUnits d on A.ProgramOrgUnitID = d.OrgUnitID 

WHERE d.OrgUnitParentID in (@OP) and 
d.OrgUnitID in (@OU) 

活動:

SELECT distinct A.Activity_ID, A.Activity_Name 

FROM dwh.Bks_DWH_Activities A 
INNER JOIN dwh.Bks_DWH_Programs aa on a.Activity_EntityID = aa.ProgramID 
INNER JOIN dwh.Bks_DWH_OrgUnits d on aa.ProgramOrgUnitID = d.OrgUnitID 

WHERE d.OrgUnitParentID in (@OP) and 
d.OrgUnitID in (@OU) and 
aa.ProgramID in (@TP) 

ORDER by A.Activity_ID 

我明白了爲什麼有重複(因爲該程序具有不同的ID),但我只是想知道如果有一個以某種方式加入這兩個方式?這是令人討厭的下拉菜單中的重複。

謝謝。

+0

難道你不能像'SELECT distinct A.Activity_ID,A.Activity_Name + aa.ProgramName AS Activity_Name'那樣做一些事情,使其獨特嗎? –

+0

這也可以!我喜歡它顯示活動旁邊的程序。謝謝。 – JerrySein

回答

0

太長的評論。我想你可以看看參數的名字。所以基本上你只需從你的活動查詢中刪除​​。但是,你還需要在主要查詢中做一些不同的事情(假設你正在過濾​​的值)。

你的動態查詢看起來像:

SELECT DISTINCT A.Activity_Name 
FROM... 

而主要的查詢會碰到這樣的:

WHERE d.OrgUnitParentID IN (@OP) 
AND d.OrgUnitID IN (@OU) 
AND aa.ProgramID IN (@TP) 
AND a.Activity_Name = @[YourActivityParameter] 

或...

AND a.Activity_Name IN (@[YourActivityParameter]) 

注:這可能有性能影響。

+0

我不認爲這會很簡單!性能方面似乎也沒有任何變化。謝謝! 對不起,我不能upvote你呢。 – JerrySein

+0

沒問題。很高興我能幫到你......數據庫變得更大時,性能問題可能會出現。但也有可能不會受到影響。祝你好運! – BJones