2016-04-04 145 views
1

我在ssrs2008矩陣象下面這樣:[Max(CVolume)]如何使用聚集函數來篩選SSRS數據集2008

GroupName Zone CompletedVolume 
Cancer  1  7 
Tunnel  1  10 
Surgery  1  64 

ComplatedVolume值由特異性表達<<expr>>,其等於來

這個矩陣由存儲過程填充,如果可能,我不應該改變它。我需要做的是不要顯示CompletedVolume爲< = 50的數據。我試圖去tablix屬性並添加一個像[Max(Q9Volume)] >= 50這樣的過濾器,但是當我嘗試運行報告時,它說的是aggregate functions cannot be used in dataset filters or data region filters.我該如何解決這個問題儘可能簡單?

請注意,在sql查詢中添加where子句並不能解決此問題,因爲還有許多其他表使用相同的SP,並且他們需要CompletedVolume < = 50的數據。任何幫助將不勝感激。

編輯:我想要SP上的最大(Q9Volume)值,但發生的事情我從來沒有見過。查詢是這樣的:

Select r.* from (select * from results1 union select * from results2) r 
left outer join procedures p on r.pid = p.id 

有趣的,這是有一些列我看不會因沒有結果1 /結果2也不程序表包括當我運行查詢。例如,表中沒有像Q9Volume這樣的列(result1,result2和procedures),但是當我運行查詢時,我在輸出中看到了列!這怎麼可能?

+0

你試過了:'Where CompletedValume> = 50'?我不明白爲什麼總和是必要的。 –

+0

@GordonLinoff,OP通過使用SSRS上的聚合表達式來計算CompletedVolume。你提出的建議可以在SP查詢中使用'HAVING'子句。 –

+1

使用'Q9Volume> = 50' – JamieD77

回答

2

您可以設置隱藏行屬性爲True時[Max(CVolume)]小於或等於大於50

選擇該行並轉到行可見

enter image description here

選擇顯示或隱藏基於表達式選項並使用以下表達式:

=IIF(
Max(Fields!Q9Volume.Value)<=50, 
True,False 
) 

它會顯示是這樣的:癌症和隧道

enter image description here

注最大值是7和10分別,所以 如果應用上面的表達式,他們將被隱藏。

讓我知道這是否有幫助。

+0

謝謝!你是我的英雄ssrs2008 –