Reporting services 使用;“以前的”;在SSRS中的作用

Reporting services 使用;“以前的”;在SSRS中的作用,reporting-services,ssrs-2008,ssrs-2012,ssrs-tablix,Reporting Services,Ssrs 2008,Ssrs 2012,Ssrs Tablix,我有下面的表达式,它很好用 =Previous(SUM(Fields!AVGCallsPerDay.Value / CountDistinct(Fields!ISOWeek.Value)),"Quarter2") 然而,我需要在其中添加一些额外的逻辑(IIF语句)(下面的代码),但该报告无法工作。我收到一个错误,说“不支持在Tablix单元格中使用上一个聚合函数”。我感觉有语法错误,因为上面的表达式与“previous”配合得很好。如果有人能解释一下下面的表达有什么问题,我将不胜感激 =Pre

我有下面的表达式,它很好用

=Previous(SUM(Fields!AVGCallsPerDay.Value / CountDistinct(Fields!ISOWeek.Value)),"Quarter2")
然而,我需要在其中添加一些额外的逻辑(IIF语句)(下面的代码),但该报告无法工作。我收到一个错误,说“不支持在Tablix单元格中使用上一个聚合函数”。我感觉有语法错误,因为上面的表达式与“previous”配合得很好。如果有人能解释一下下面的表达有什么问题,我将不胜感激

=Previous(IIF((Fields!BranchManager.Value) = "All Branches",
SUM(Fields!AVGCallsPerDay.Value) /CountDistinct(Fields!ISOWeek.Value),
AVG(Fields!AVGCallsPerDay.Value)), "Quarter2")

我看到了一些可能导致您对这些表达式产生问题的因素。第一个表达式似乎是对表达式
字段的求和!AVGCallsPerDay.Value/CountDistinct(Fields!ISOWeek.Value)
。你说这很好,而且似乎是你打算做的。第二个等式不使用相同的逻辑——您正在对
字段求和!AVGCallsPerDay.Value
并将该值除以CountDistinct(Fields!ISOWeek.Value)。话虽如此,您可能需要调整括号以获得相同的值

我看到的下一个潜在问题是
Previous
是使用的最外层函数。我没有对此进行测试,但我假设您希望
IIF
是最外层的函数。通过这些更改,我相信您需要将表达式重写为以下内容:

=IIF(Fields!BranchManager.Value = "All Branches", 
     Previous(SUM(Fields!AVGCallsPerDay.Value / CountDistinct(Fields!ISOWeek.Value)),"Quarter2"), 
     Previous(AVG(Fields!AVGCallsPerDay.Value), "Quarter2"))