Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reporting services 在SSRS数据集中引用字段的正确方式是什么?_Reporting Services_Sql Server 2014_Ssrs 2014 - Fatal编程技术网

Reporting services 在SSRS数据集中引用字段的正确方式是什么?

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

我使用的是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 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函数只在一个数据集中工作。