2012-01-18 42 views
4

免責聲明:我是一個SSRS的n00b,所以沒有太多的爛西紅柿請:)SSRS遞歸計數 - 如何僅爲子女獲得聚合,而不是父級?

我有員工和管理人員,我有Reporting Services的建設使用Recursive Parent property的層次結構。這裏有一個粗表示:

-Jim Bob 
    Ray 
    -Steve 
    Ricky Bobby 
    Terry 

例如,我需要史蒂夫下的人民的計數,但是當我打電話Count(Fields!EmployeeID.Value, "Details", Recursive)我得到代替。當然,我可以在計數的情況下減1,但當我需要一筆數額時,這不起作用。所以真正的問題是如何獲得排除父級的遞歸聚合?

附加信息:我只有一個組是默認的詳細信息組。它的設置就像this example,所以我按照EmployeeID進行分組,並將遞歸父設置爲ManagerID。


更新

我已經試過無濟於事幾個解決方法:

  • 添加組內的行 - 得到相同的結果,因爲它仍然在範圍爲同另一個細節行。
  • 添加小計 - 不起作用,因爲它在詳細信息組之外,所以它只會呈現一次而不是每個管理器一次。

任何想法?

回答

1

你可以考慮幾件事。

1)你能提供數在提供報告的SQL查詢,然後簡單地使用

 =FIRST(Fields!FieldThatHasCount.Value). 

2報告它爲每個組)您可以使用您的報告中的代碼塊反覆調用一個函數,在共享變量上增加計數或在父節和子節之間進行某種算術運算,以反映報告出現時的計數。我知道我已經在這個方法中遇到了複雜的問題,這取決於SSRS版本以及報告中的複雜性,嵌套,子報告等級。

+0

感謝您的指示,我可能會採取您的第一個建議。第二個想法讓我感到緊張,因爲我認爲我已經瞭解全局變量是在報告的所有實例之間共享的,即如果多個用戶同時運行它們可能會影響對方的結果。 – 2012-01-20 19:36:56

+0

我最終迴歸到使用SQL。我使用了幾個UDF,因爲我需要能夠重用其中的一部分並以不同的方式對其進行總結。 – 2012-02-01 15:33:15

0

我該如何得到排除父項的遞歸總和?

這應該工作,因爲您仍然可以訪問當前字段的值。

=Sum(Fields!EmployeeSalary.Value, "Details", Recursive) - Fields!EmployeeSalary.Value