免责声明:我是SSRS n00b,所以请不要太多腐烂的西红柿:)
我拥有使用Recursive Parent property构建Reporting Services的员工和经理层次结构。这是一个粗略的表示:
-Jim Bob
Ray
-Steve
Ricky Bobby
Terry
例如,我需要对Steve下的人数进行统计,但当我致电Count(Fields!EmployeeID.Value, "Details", Recursive)
时,我会 3 而不是 2 。当然,我可以在计数的情况下减去1,但是当我需要总和时,这不起作用。所以真正的问题是如何获得排除父母的递归聚合?
附加信息:我只有一个组是默认的“详细信息”组。它的设置与this example类似,所以我按EmployeeID进行分组,并将递归父级设置为ManagerID。
更新
我尝试过一些无法解决的问题:
有什么想法吗?
答案 0 :(得分:1)
你可以考虑几件事。
1)您可以在提供报告的SQL查询中提供计数,然后使用
为每个组报告 =FIRST(Fields!FieldThatHasCount.Value).
2)您可以使用报告的代码块迭代调用函数,增加共享变量的计数或在父节和子节之间进行某种算术,以反映报告显示时的计数。我知道我已经遇到了这种方法的复杂性,这取决于SSRS版本以及报告中的复杂性,嵌套,子报告等级。
答案 1 :(得分:0)
如何获得排除父级的递归聚合Sum?
这应该有效,因为您仍然可以访问当前字段的值。
=Sum(Fields!EmployeeSalary.Value, "Details", Recursive) - Fields!EmployeeSalary.Value