我正在创建一个实际上是7个报告的报告。第一页需要有每个报告的记录计数如下:
Current Old Total
Report 1 1300 1200 2500
Report 2 2500 1000 3500
我创建了一个包含行组的表,并使用像这样的表达式来获取当前值和旧值:
=IIF(Fields!praccode.Value <> "DO", sum(CountDistinct(Fields!last_name.Value & Fields!first_name.Value)),0)
我遇到的一个问题是praccode.Value有多个值&lt;&gt; “DO”,所以它给了我每个值的组计数,我只需要一个总计所有值的值。我怎样才能获得所有值的单一计数&lt;&gt; “DO”?
我发现的另一个问题是,当我添加更多这些表达式时,报告运行得越来越慢。直接在SQL而不是SSRS中创建这些计数是否更好?
答案 0 :(得分:0)
由于您要为每条记录评估 praccode 字段的值,您需要将其包含在聚合函数中:
=CountDistinct(IIF(Fields!praccode.Value <> "DO", Fields!last_name.Value & Fields!first_name.Value, NOTHING))
您需要使用NOTHING作为IIF的另一个选择,以便在您想要唯一值时不计算它。
每个表达式都需要花费一点时间,因此您可以对查询执行的任何计算都有助于加快报告速度。你在同一行中计算一个计数的原始表达式是不必要的,因为它总是将一个值相加但仍然使它变慢。
答案 1 :(得分:0)
我明白了。我需要右键单击表达式框并选择Add Total。然后隐藏原始表达框。