我看了一遍,但没有找到我的确切情况,所以我发布了我的第一个问题。我有一份报告,我已在多个级别上分组。所以我的报告有一个客户/标题/详细信息/发布分组。我编写了一个自定义表达式,以便在详细信息中只显示单个值(组中的最大值),并在发布中显示所有值。然后我设置我的可见性切换以切换标题,然后是详细信息,然后发布,我需要将这些最大值汇总到报表上的字段中。当您在详细级别上显示时,我编写的自定义表达式可以正常工作。它给出了正确的值,这是每个版本中的最大值。
然后我需要报告做的是仅将该最大值相加并将其滚动到标题组中,以便我得到总的最大值。
我已经尝试在我的表达式中使用MAX函数来获得正确的最大值,但我无法得到SSRS 2008 R2的总和,我尝试编写一个自定义表达式来计算最大值(非零值除以按非零记录的数量)并且两种方式都正常工作,直到我尝试汇总并求和到下一个组级别。
我还尝试使用组变量和自定义代码来获取值并将其保存到变量中,但我没有运气设置或正确地将该值恢复到我的报告中。
最基本的感觉就像我应该能够设置一个Sum(Max(Fields!ValueColumn.Value)并让SSRS处理它应该如何分解,但在反复尝试之后我仍然没有运气。我无法调整SQL,因为我需要报告显示的详细程度,尽管我可以添加更多字段,只要我不添加任何会降低返回数据粒度的分组或总计。
任何新的探索途径都会非常有用。
提前谢谢你, 乍得
答案 0 :(得分:1)
我终于找到了我遗失的额外部分,它给了我所需的结果。新表达式如下所示:
=runningvalue(Sum(Max(IIF(LEFT(Fields!JobNum.Value,1)="S" AND Fields!Week1STol.Value<>0, CDBL(Fields!Week1STol.Value), 0),"JobItem"),"JobItem"),SUM, "JobItem")
在此,我在JobItem级别的Sum和runningvalue中包装Max的原始表达式以获得此累积值。现在,当我打开分组时,我会在每个级别获得正确的运行值。
这真正给我的是四个分组中每个分组的总计,即使在细节级别具有“最大”值。这也允许我在报表上内联最大值,而不需要隐藏行或报表页脚。