我对SSRS(BIDS)2005中的限制似乎有困难,升级到新版本对我来说还不是一个选择。
我有一个DataSet,它返回员工的一堆工资单扣留数据,我想根据我在字段“A”中找到的字段获得字段“B”的值。具体来说,我希望根据字段“Code”为“OptlLife”获得一美元金额。
所以,如果字段A =“OptLife”给我字段B的美元值。很简单,对吧?
我最接近的是:
=IIF(First(Fields!Code.Value, "Withholdings") = "OptLife", First(Fields!AmtPct.Value, "Withholdings"), " ")
杀死我的是“第一”指标。我不想要“第一”或“最后”或“最大”或“总和”。我希望任何数据行都具有值OptLife。如果我删除该指标,我会收到语法错误。我该如何解决这个问题?
我真正想要的是“选择来自WithholdingsDataSet的AmtPct,其中Code =”OptLife“,但它需要是一个SSRS表达式。
编辑每个问题:
所以,我有一个来自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
在我的报告中,我有一个格式化为Currency的文本字段,需要一个表达式将28.84拉入该字段。因为我有多个与此报告关联的DataSet,所以我需要指定值来自哪个DataSet,因此(Fields!Code.Value,“Withholdings”)但是必须在括号内加上一些括号。我放在那里没有给我我需要的价值。
一旦我确定了这一点,同样的方法将用于区分Roth和传统的401K,以及FSA医疗保健的FSA儿童保育。
答案 0 :(得分:1)
你应该可以使用类似的东西:
=Sum(IIF(Fields!Code.Value = "OptLife", Fields!AmtPct.Value, Nothing), "Withholdings")
如您所见,由于您在文本框中引用数据,因此需要使用聚合表达式。
上面的表达式会将Sum
应用于数据集,但只考虑OptLife
行,这似乎就是您所追求的。假设您在数据集中只有一个OptLife
代码,那么您只会考虑聚合中的一行,我认为这是必需的。