1

我在 SSRS (BIDS) 2005 中似乎存在限制时遇到了困难,升级到较新版本对我来说还不是一个选择。

我有一个数据集,它按员工返回一堆工资预扣数据,我想根据我在字段“A”中找到的内容来获取字段“B”的值。具体来说,我想根据“代码”字段为“OptlLife”获得一个美元金额。

所以,如果字段 A = "OptLife" 给我字段 B 的美元价值。很简单,对吧?

我能来的最接近的是:

=IIF(First(Fields!Code.Value, "Withholdings") = "OptLife", First(Fields!AmtPct.Value, "Withholdings"), " ")

让我难过的是那个“第一”指标。我不想要“第一个”或“最后一个”或“最大”或“总和”。我想要任何具有 OptLife 值的数据行。如果我删除该指示符,我会收到语法错误。我该如何解决这个问题?

我真正想要的是“从代码=“OptLife”的WithholdingsDataSet中选择AmtPct,但它需要是一个SSRS表达式。

编辑 PER IAN 的问题:

所以,我有一个来自 DataSet 的结果集,看起来像这样。

Employee    Code        Method  AmtPct
1121        401K        A       400
1121        Roth        null    null
1121        FSAChild    A       96.15
1121        FSAHealth   A       192.31
1121        OptLife     A       28.84

在我的报告中,我有一个格式化为货币的文本字段,并且需要一个将 28.84 拉入该字段的表达式。因为我有多个与此报告相关联的数据集,所以我需要指定值来自哪个数据集,因此 (Fields!Code.Value, "Withholdings") 必须在括号中添加一些内容。我放在那里的任何东西都没有给我我需要的价值。

一旦我确定了这一点,将使用相同的方法来区分 Roth 和传统 401K,以及 FSA Childcare 和 FSA Healthcare。

4

1 回答 1

1

你应该能够使用类似的东西:

=Sum(IIF(Fields!Code.Value = "OptLife", Fields!AmtPct.Value, Nothing), "Withholdings")

如您所见,由于您要引用文本框中的数据,因此您需要使用聚合表达式。

上面的表达式将 aSum应用于数据集,但只会考虑OptLife行,这似乎是您所追求的。假设您在数据集中只有一个OptLife代码,您只会考虑聚合中的一行,我认为这是必需的。

于 2013-08-21T17:35:08.000 回答