2012-01-05 50 views
0

我有一个包含2个数据集的报告,并希望在文本框表达式中执行SUM操作。当我想执行一个IIF时,问题就出现了,因为我只想要一个特定类别的值。具有多个数据集的SSRS IIF语法

我想从dsRetrieveCustomerAssetScores数据集中获得所有“良好”排名值的总和。请注意,报告中有多个数据集,因此我需要在使用聚合函数时指定范围。下面是我试过的代码(以及其他排列)。

= SUM(IIF(领域!ranking.Value, “好”,1,0), “dsRetrieveCustomerAssetScores”)

任何想法?

+0

当您尝试该代码时发生了什么? – 2012-01-06 09:33:49

回答

3

你可能在你的报告多个数据集,但我不认为这是可能有每表矩阵多个数据集。 (Tablix中的子报表可能会绑定到不同的数据集,但子报表中的任何位置只能访问其他数据集。)

集合公式中指定的范围通常与tablix中的组相关,而不是数据源。

所以,代码:

=Sum(iif(Fields!ranking.Value,"Good",1,0)) 

- 应为表矩阵正在访问dsRetrieveCustomerAssetScores数据集的表矩阵内的工作,只要。

+0

感谢您的提示。我现在得到这个错误:“文本框'Textbox4'的值表达式使用一个没有作用域的聚合表达式,除非报表只包含一个数据集,否则在数据区域之外使用的所有聚合都需要一个作用域。我可以这样做:= Count(Fields!ranking.Value,“dsRetrieveCustomerAssetScores”)返回一个值,这样报表就可以访问底层数据,我只想过滤聚合的内容。奇怪 - 为什么你不能在集合函数中使用IIF? – user545241 2012-01-06 17:31:47

+0

好的,我没有考虑过你在数据区域之外访问该汇总的可能性,你还没有告诉我当你尝试'= Sum(iif(Fields!ranking.Value,“Good”,1,0),“dsRetrieveCustomerAssetScores”)'。 – 2012-01-06 17:40:11

+0

Thanks for help。当我使用该语法时,出现以下错误:textrun的值表达式'Textbox4.Paragraphs [0] .TextRuns [0]'包含错误:[BC30516]重载解析失败,因为没有可访问的'IIf'接受这个数量的参数。 – user545241 2012-01-06 17:51:12