如何获得最大金额?

时间:2013-05-06 21:28:03

标签: reporting-services ssrs-2008

有谁能告诉我如何获得计算字段的最大值?以下是我的情况图片:

Table Structure Grouping Pic

请注意,Flag的类型为int

我想在图像中写出表达式,但是当我使用它时,它确实有:

Sum(Sum(Fields!Flag.value)) 

任何人都可以帮我解决这个问题。我想我需要为Sum(Flag)添加范围,但是当我将组范围添加为EMPID时:

=iif(SUM(Fields!Flag.value,"Fields!EmpID.Value")>2,"RED",nothing)

它引发了一个关于范围的错误。

修改

我需要每位员工的出勤率。如果不存在,FLAG基本上为1,如果不存在则为0。

底行(标记,日期,状态,注释)。现在我有一个提醒:

=iif(Fields!Flag.Value=1,"RED",Nothing)

在中间行(EmpID,EmpName)的文本框(Textbox62)旁边,我做了表达式:SUM(标记),并在文本框属性的填充部分中完成了:

=iif(SUM(Fields!Flag.value,"Fields!EmpID.Value")>2,"RED",nothing)

因此,如果员工缺席超过3天,上述表达式会创建警报。

可以向下钻取最顶行(部门,经理)以查看更详细的报告视图。现在我的问题是,在列(FLAG)中我需要创建一个背景颜色更改,如果特定部门中的任何员工缺席超过3天。那么我们不必深入了解所有部门以查看是否有任何员工缺席与否。 所以我的方法是看到Max(Sum(Flag))> 2然后创建颜色变化。我试过了:

=iif(MAX(Sum(Fields!Flag.Value))>2,"Red",Nothing)

它在部门级别不起作用,因为它基本上考虑(SUM(Sum(Flag)))。

感谢................

1 个答案:

答案 0 :(得分:2)

如果未指定聚合的范围,则假定您使用的是当前范围。例如,当你说

Sum(Fields!Flag.value)

它被解释为类似

Sum(Fields!Flag.value, "EmpID")

范围是组的名称,而不是数据集字段的名称。 取决于它在表中的位置。当你想说出像

这样的话
Sum(Sum(Fields!Flag.value))

您需要为每个不会是当前默认值的范围指定范围。 在你的情况下,你应该使用这样的东西:

=iif(MAX(SUM(Fields!Flag.value, "EmpID"), "Department")>2,"RED",nothing)

再次注意每个聚合所引用的组以及表达式在表中的位置。

此外,文本框中的此表达式只会使单词“RED”出现在框中。如果您想要更改颜色,则必须将其放在属性中的“填充颜色”表达式中。