Reporting services 在SSRS数据集中引用字段的正确方式是什么?
我使用的是SSRS 2014 SP1 x64和VS2013更新5 我有以下表达式试图计算报表报告的老化Reporting services 在SSRS数据集中引用字段的正确方式是什么?,reporting-services,sql-server-2014,ssrs-2014,Reporting Services,Sql Server 2014,Ssrs 2014,我使用的是SSRS 2014 SP1 x64和VS2013更新5 我有以下表达式试图计算报表报告的老化 =SUM(IIF(DateDiff("d", (Fields!OrderDate.Value, "Invoice"), Now())<=0, (Fields!LineAmount.Value, "Invoice"), 0)) =SUM(IIF(DateDiff("d", (Fields!OrderDate.Value, "Invoice"), now())>=1 and DateD
=SUM(IIF(DateDiff("d", (Fields!OrderDate.Value, "Invoice"), Now())<=0, (Fields!LineAmount.Value, "Invoice"), 0))
=SUM(IIF(DateDiff("d", (Fields!OrderDate.Value, "Invoice"), now())>=1 and DateDiff("d", (Fields!OrderDate.Value, "Invoice"),Now())<=30, (Fields!LineAmount.Value, "Invoice"), 0))
=SUM(IIF(DateDiff("d", (Fields!OrderDate.Value, "Invoice"), now())>=31 and DateDiff("d", (Fields!OrderDate.Value, "Invoice"), Now())<=60, (Fields!LineAmount.Value, "Invoice"), 0))
=SUM(IIF(DateDiff("d", (Fields!OrderDate.Value, "Invoice"), now())>=61 and DateDiff("d", (Fields!OrderDate.Value, "Invoice"), Now())<=90, (Fields!LineAmount.Value, "Invoice"), 0))
=SUM(IIF(DateDiff("d", (Fields!OrderDate.Value, "Invoice"), now())>=91, (Fields!LineAmount.Value, "Invoice"), 0))
现在,当我尝试将第一个添加到字段选择器时,我得到一个错误,声明。。。在外部聚合中使用第一个、最后一个或上一个聚合
如何从发票数据集中准确引用此字段至少有两个数据集
我这样做是否正确?您需要使用函数从第二个数据集引用字段我相信以下方法可以奏效:
=IIF(DateDiff("d", First(Fields!OrderDate.Value, "Invoice"), Now())<=0, RunningValue(Fields!LineAmount.Value, Sum, "Invoice"), 0)
=IIF(DateDiff("d", First(Fields!OrderDate.Value, "Invoice"), now())>=1 and DateDiff("d", First(Fields!OrderDate.Value, "Invoice"),Now())<=30, RunningValue(Fields!LineAmount.Value, Sum, "Invoice"), 0)
=IIF(DateDiff("d", First(Fields!OrderDate.Value, "Invoice"), now())>=31 and DateDiff("d", First(Fields!OrderDate.Value, "Invoice"),Now())<=60, RunningValue(Fields!LineAmount.Value, Sum, "Invoice"), 0)
=IIF(DateDiff("d", First(Fields!OrderDate.Value, "Invoice"), now())>=61 and DateDiff("d", First(Fields!OrderDate.Value, "Invoice"),Now())<=90, RunningValue(Fields!LineAmount.Value, Sum, "Invoice"), 0)
=IIF(DateDiff("d", First(Fields!OrderDate.Value, "Invoice"), now())>=91, RunningValue(Fields!LineAmount.Value, Sum, "Invoice"), 0)
查找函数如何帮助返回单个字段的值?RunningValueexpression、function、scope不是更好的聚合函数吗?这样我就可以指定范围,而不必比较值。正如您提到的,您的报告中有多个数据集。我猜您想要的是将Invoice dataset中的字段放入一个tablix/matrix中,其中嵌入了另一个dataset。查找函数类似于链接两个数据集的SQL连接函数。除了Lookup函数和lookupper函数之外,大多数RS函数只在一个数据集中工作。