SSRS和现场级别的过滤

时间:2015-04-25 22:43:51

标签: ssrs-2008

我有一个包含许多记录的数据集,这些记录具有唯一标识符和“CreateDate”字段。我需要能够在字段级别进行过滤以确定过去7天内添加的记录数量,我不希望在数据集级别进行过滤。我已经为数据集创建了一个“计算”字段,我在计算记录的语法方面遇到了困难(使用唯一字段“PropertyId”作为我的计数字段),但只计算创建日期在最后7个字节内的记录天。我用于创建的字段的表达式我名为SalesLastWeek: -

=IIf(Fields!CreateDate.Value > =DateAdd(DateInterval.Day,-7,Today()), =Count(Fields!PropertyId.Value), 0)

收到的错误讯息是: -

  

用于计算字段的表达式   '= IIf(Fields!CreateDate.Value> = DateAdd(DateInterval.Day,-7,Today()),   = Count(Fields!PropertyId.Value),0)'包括聚合,RowNumber,RunningValue,Previous或lookup函数。 Aggregate,RowNumber,   RunningValue,Previous和lookup函数不能用于   计算字段表达式。

2 个答案:

答案 0 :(得分:1)

我不确定您为什么要尝试使用数据集中的额外字段执行此操作。如果每个PropertyId的数据中都有单独的记录(似乎有),您可以通过对PropertyId和类似的表达式进行分组来计算:

=SUM(IIf(Fields!CreateDate.Value >= DateAdd(DateInterval.Day, -7, Today()), 1, 0))

您无法在计算字段中执行此操作,因为它使用聚合函数(SUM)。您可以使您的字段在记录级别上工作,但它将是1或0。

=IIf(Fields!CreateDate.Value >= DateAdd(DateInterval.Day, -7, Today()), 1, 0)

答案 1 :(得分:0)

在Reporting Services中,我们无法在计算字段中使用聚合函数。因为计算字段也是详细的行级数据,这意味着在行级别上该字段应该是静态的。因此在IIF()函数中,true部分和false部分都应该是行级别的唯一静态值。