2013-01-24 45 views
1

我創建了應該準確地使用表矩陣對數據進行分組,如下所示的報告:有條件集團在SSRS的Tablix或DB查看

Region | State | Customer | CustomerKey | Status 
North | NY  | Bob  | 111   | VIP 
     |   | Mary  | 112   | VIP 
     | MA  | Bob  | 111   | Regular 
     |   | Tim  | 113   | Regular 
East | MD  | Greg  | 114   | VIP 
     | VA  | Bob  | 111   | VIP 
West | CA  | Greg  | 114   | Regular 
     |   | Mary  | 112   | VIP 
     |   | Sean  | 115   | Regular 
     | WA  | Sean  | 115   | VIP 

這是比較容易的,因爲我使用了視圖所有適當的領域和關係使Tablix中的分組變得簡單。我只會遇到與我的VIP客戶有關的問題。 在該視圖中,擁有VIP身份的客戶也具有重複的記錄,並具有正常狀態。例如,數據存儲如下:

Region | State | Customer | CustomerKey | Status 
North | NY  | Bob  | 111   | VIP 
North | NY  | Bob  | 111   | Regular 
North | NY  | Mary  | 112   | VIP 
North | NY  | Mary  | 112   | Regular 
North | MA  | Bob  | 111   | Regular 
North | MA  | Tim  | 113   | Regular 
East | MD  | Greg  | 114   | VIP 
East | MD  | Greg  | 114   | Regular 
East | VA  | Bob  | 111   | VIP 
East | VA  | Bob  | 111   | Regular 
West | CA  | Greg  | 114   | Regular 
West | CA  | Mary  | 112   | VIP 
West | CA  | Mary  | 112   | Regular 
West | CA  | Sean  | 115   | Regular 
West | WA  | Sean  | 115   | VIP 
West | WA  | Sean  | 115   | Regular 

我的SSRS報告因此顯示的數據如下:

Region | State | Customer | CustomerKey | Status 
North | NY  | Bob  | 111   | VIP 
     |   |   |    | Regular 
     |   | Mary  | 112   | VIP 
     |   |   |    | Regular 
     | MA  | Bob  | 111   | Regular 
     |   | Tim  | 113   | Regular 
East | MD  | Greg  | 114   | VIP 
     |   |   |    | Regular 
     | VA  | Bob  | 111   | VIP 
     |   |   |    | Regular 
West | CA  | Greg  | 114   | Regular 
     |   | Mary  | 112   | VIP 
     |   |   |    | Regular 
     |   | Sean  | 115   | Regular 
     | WA  | Sean  | 115   | VIP 
     |   |   |    | Regular 

如果用戶有VIP的狀態,我不關心他們的記錄與他們的定期狀態(針對該特定地區/州)。無論如何,我可以有條件地隱藏這些嗎?在此先感謝

回答

1

就我個人而言,我會考慮在第一個實例的數據庫查詢級別解決這個問題。

這就是說,在報告級別一個辦法是建立基於地區國家客戶,然後在狀態欄,你可以有一個像表達式:

=IIf(CountRows("CustomerGroup") = 2, "VIP", "Regular") 

這是一個有點笨拙,但應該工作,因爲它似乎每個客戶可以在地區/國家有一個或兩行水平 - 如果兩個必須是V IP,並且既然你已經設置了一個組,你可以得到不同的值Customers每個Region/State組合。

+0

謝謝伊恩,但即使我試圖告訴它計算父組的行,Tablix仍然反映出2行。我同意在數據庫端做一個更實際的更改,考慮添加一個像'ParentStatus'這樣的CASE列,沿着CASE狀態WHEN'Regular'THEN NULL ELSE'VIP'END ... – dp3

+1

你需要什麼要做的是設置三個組,但不包含默認創建的Details組 - 因爲只有一個不同的Region/State/Combination可能不需要它。所以顯示的行實際上是客戶組標題行;當你在做CountRows時,它在實際組的範圍內,而不是父組。但是你是對的,DB可能更容易......我可以想到圍繞它的各種方法(包括上面的方法),但是如果能夠在較低級別解決這個問題,它們都是沒有實際意義的。 –