簡體   English   中英

Report Builder 3.0如何在不同的列上進行過濾

[英]Report Builder 3.0 How to filter on different columns

我的報表(Report Builder 3.0)中有一個名為REPORT_FILTER的參數。 此參數有4個可用值。 標簽為(1)家庭組,(2)家庭分支,(3)其他組和(4)其他分支。 相應的值為1、2、3和4。

用於運行此報告的SQL在本地組的“ Filter1”列中添加“ 1”,在其他組的“ Filter1”列中添加“ 2”。

用於運行此報告的SQL將“ 1”添加到Home分支的“ Filter2”列中,將“ 2”添加到其他分支的“ Filter2”列中。

運行SQL時,在“過濾器1”和“過濾器2”列中得到1或2。 這些數據正是我所期望的。

我想做的是在報表中添加一個過濾器,以便用戶僅獲得他們想要的記錄。 我正在努力的是,過濾器將必須使用2列,但我不確定該怎么做。

例如,如果用戶選擇家庭組(值= 1),則報告應僅返回在Filter1列中具有1的那些記錄。

如果用戶選擇“其他分支”(值= 4),則報表應僅返回在Filter2列中具有2的那些記錄。

該報告已經需要一段時間才能運行幾分鍾,所以(我認為)我希望在Report Builder中而不是在SQL中過濾結果。 如果我可以使用SQL做到這一點,那將是可以接受的。 我嘗試編寫SQL來做到這一點,但還沒有成功。

任何建議,將不勝感激。 謝謝您的幫助。

在SQL中非常容易做到,只需添加以下WHERE條件:

WHERE 
CASE 
WHEN
   @REPORT_FILTER = 4 and Filter2 = 2 then 1
WHEN
   @REPORT_FILTER = 3 and Filter2 = 1 then 1
WHEN
   @REPORT_FILTER = 2 and Filter1 = 2 then 1
WHEN
   @REPORT_FILTER = 1 and Filter1 = 1 then 1
ELSE 0
END = 1

同樣在SSRS中,只需使用Filters表達式

(Parameters!REPORT_FILTER.Value = 4 And Fields!Filter2.Value = 2)
OR
(Parameters!REPORT_FILTER.Value = 3 And Fields!Filter2.Value = 1)
OR
(Parameters!REPORT_FILTER.Value = 2 And Fields!Filter1.Value = 2)
OR
(Parameters!REPORT_FILTER.Value = 1 And Fields!Filter1.Value = 1)

將表達式類型設置為布爾值,並將比較值設置為True。

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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