Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.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
Sql server 基于两个日期之间的另一次计算计算值的表达式_Sql Server_Reporting Services - Fatal编程技术网

Sql server 基于两个日期之间的另一次计算计算值的表达式

Sql server 基于两个日期之间的另一次计算计算值的表达式,sql-server,reporting-services,Sql Server,Reporting Services,我难以置信地被困在试图得到一个表达式来处理SSRS报告上。 好的,我将从它的BusinessObjects来源重新创建这个报告,其中包含了许多变量 我的报告中有3列是基于这些变量的,所以下面的内容已经创建好了,看起来效果不错 =sum(Fields!No_of_cash_raised.Value) =sum(Fields!No_of_cash_raised.Value) \ CountDistinct(Fields!TCY_REFNO.Value) =sum(IIF((Fields!ARA_

我难以置信地被困在试图得到一个表达式来处理SSRS报告上。 好的,我将从它的BusinessObjects来源重新创建这个报告,其中包含了许多变量

我的报告中有3列是基于这些变量的,所以下面的内容已经创建好了,看起来效果不错

=sum(Fields!No_of_cash_raised.Value)

=sum(Fields!No_of_cash_raised.Value) \ CountDistinct(Fields!TCY_REFNO.Value)

=sum(IIF((Fields!ARA_CODE.Value = "CASH" or  Fields!ARA_CODE.Value = "PYMT") AND  Fields!TCY_START_DATE.Value >= DateAdd("d",-28,Parameters!P_TCY_START_DATE_TO.Value),1,0))
现在我遇到了下一个表达式的问题。我试图根据两个日期之间的计算来计算参考号

=count(Fields!TCY_REFNO.Value, IIF(Fields!TCY_START_DATE.Value >= DateAdd("d",-28,Parameters!P_TCY_START_DATE_TO.Value),1,0))
当我尝试运行此报告时,我得到了“范围参数对聚合函数无效”的消息,我已经查看了此错误,但找不到解决方案。我所能说的是,除了上一个表达式中列出的参数字段之外,我的数据集中所有引用的字段都是可用的。我使用的是一个tablix,我在一列上分组,上面没有提到

提前感谢查看使用该格式的求和函数的

总和(表达式、范围)

其中
范围

(字符串)可选。包含要应用聚合函数的报表项的数据集、组或数据区域的名称。如果未指定范围,则使用当前范围

您似乎正在将此范围的值设置为返回1或0的
iif
语句,而不是数据集(如“DataSet1”)。不能将您的
iif
(聚合函数)用作求和表达式的作用域

更新

查看正在使用格式的Count函数的

计数(表达式、范围)

其中
范围

(字符串)包含要应用聚合函数的报表项的数据集、组或数据区域的名称。如果未指定范围,则使用当前范围

您似乎仍在将此范围的值设置为返回1或0的
iif
语句,而不是数据集(如“DataSet1”)。也不可能将您的
iif
(聚合函数)用作计数表达式的作用域

解决方案

您需要执行
Sum
iif
以获得所需的行为

=Sum(
    IIF(Fields!TCY_START_DATE.Value >= 
        DateAdd("d",-28,Parameters!P_TCY_START_DATE_TO.Value)
    , 1
    , 0)

这样,如果
TCY\u START\u DATE
大于
p\u TCY\u START\u DATE\u至-28
days

Hi感谢您的回复,计数才会包含在总和中。我已经修改了原来的帖子,因为我实际上使用的是一个计数而不是一个总数。要添加我的数据集叫做“Payment_at_signup”,我不清楚在我的表达式中使用它的语法。我应该同时删除1和0的值吗?谢谢。上面的表达式可以工作,但无法检索预期的金额。它应该检索类似于我的另一个表达式**=sum(IIF((Fields!ARA_CODE.Value=“CASH”或Fields!ARA_CODE.Value=“PYMT”)和Fields!TCY_START_DATE.Value>=DateAdd(“d”、-28,Parameters!P_TCY_START_DATE_to.Value),1,0))**我将对此进行研究,再次表示感谢。