SSRS 表达式到总和值 IIF YearMonth = Parameter

问题描述

我希望有人能够提供帮助\帮助。

我有一个 Tablix,我试图根据参数从一个字段中填充三个单独的(总和)值(本月、本年和上一年)。我的参数设置为yyyymm。我对每个求和值的表达逻辑如下:

汇总当前月份值

=SUM(Fields!Quantity.Value),IIF(Parameters!YearMonth.Value) = CDATE(Now()),"yyyyMM")

汇总当前年份值

=SUM(Fields!Quantity.Value),"yyyy")

汇总上一年的值

=SUM(Fields!Quantity.Value),"yyyy")-1

尝试上述表达式时出现以下错误

文本运行 Quantity5.Paragraphs[0].TextRuns[0] 的值表达式包含错误[BC30205] End of statement expected

解决方法

正如 Harry 指出的,IIF 语句的语法是

IIF([Expression to evalute],[Expression to return if true],[Expression to return if false])

此外,我认为您需要格式化从 now() 返回的日期,使其与您的参数格式相匹配。

所以,就你的第一个表达而言,它应该是这样的

=SUM(
    IIF(Parameters!YearMonth.Value = FORMAT(Now(),"yyyyMM"),Fields!Quantity.Value,Nothing)
    )

因此从内部表达式开始,我们将参数与格式化为 yyyyMM 的今天日期进行比较。如果匹配则返回 Quantity 字段的值,如果不匹配则不返回任何内容。 然后外部 SUM 只是将所有这些结果相加。