Sql server 基于两个日期之间的另一次计算计算值的表达式
我难以置信地被困在试图得到一个表达式来处理SSRS报告上。 好的,我将从它的BusinessObjects来源重新创建这个报告,其中包含了许多变量 我的报告中有3列是基于这些变量的,所以下面的内容已经创建好了,看起来效果不错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_
=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
daysHi感谢您的回复,计数才会包含在总和中。我已经修改了原来的帖子,因为我实际上使用的是一个计数而不是一个总数。要添加我的数据集叫做“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))**我将对此进行研究,再次表示感谢。