SSRS-根据其他2列的条件从数据集中的列中提取值

时间:2018-11-10 15:39:09

标签: reporting-services

我的数据集中有3列(类别,月份,金额),其值类似于以下内容:

Category   Month   Amount
A          Jan       20
A          Feb       25
A          Mar       10
R          Jan       15
R          Feb       50
R          Mar       55

在报告上,我需要:

    Jan   Feb   Mar
A   20    25    10
R   15    50    55

我尝试将此表达式放置在每个组行列中,例如,在Jan列中将是:

=IIF(Fields!Category.Value = "A" and Fields!Month.Value = "Jan", Fields!Amount.Value, 0)

但是我得到的结果为0,就像错误的结果一样。

请让我知道如何解决此问题。

2 个答案:

答案 0 :(得分:0)

如果需要将其用作表达式,则正确的表达式应为:

 subs = subs.replaceAll("[\\u202F\\u00A0]", "");

但是我建议您只使用一个矩阵,将其拖放到行=Sum(IIF(Fields!Category.Value = "A" And Fields!Month.Value = "Jan", Fields!Amount.Value, 0)) 和列组Fields!Category.Value中。在行和列组相遇的位置,您也可以拖放Fields!Month.Value,因为矩阵中的默认聚合函数为Fields!Amount.Value。正是您需要的Sum()

答案 1 :(得分:0)

SSRS错误消息不是很有意义,因此要解决此问题,请依次测试表达式的每个部分。用

创建一列
=IIF(Fields!Category.Value = "A" ,1, 0)

另一个与

=IIF(Fields!Month.Value = "Jan", 1, 0)

另一个与

=IIF(1=1,Fields!Amount.Value, 0)

当您知道表达式的哪一部分失败时,我们会建议可能的解决方案。要尝试的一件事是转换数据类型,例如

=sum(IIF(cstr(Fields!Category.Value) = "A" And cstr(Fields!Month.Value) = "Jan", Fields!Amount.Value, cint(0)))