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 可以在IIF语句中使用DateDiff吗?_Reporting Services_Ssrs 2008_Reportbuilder3.0 - Fatal编程技术网

Reporting services 可以在IIF语句中使用DateDiff吗?

Reporting services 可以在IIF语句中使用DateDiff吗?,reporting-services,ssrs-2008,reportbuilder3.0,Reporting Services,Ssrs 2008,Reportbuilder3.0,我一直在寻找帮助,但找不到我真正需要的。 我试图找到两个日期字段之间的总天数,但是起始日期字段可能来自两个不同的字段,例如开始日期或修改后的开始日期。结束日期将始终为同一字段 大多数情况下,将不会有一个修改的开始日期,但我需要一种方式,以满足场景,即开始日期已被修改。 我尝试了以下方法 =IIF(Fields!AmendedStartDate.Value为nothing,DateDiff(“d”,Fields!StartDate.Value,Fields!EndDate.Value,DateDi

我一直在寻找帮助,但找不到我真正需要的。 我试图找到两个日期字段之间的总天数,但是起始日期字段可能来自两个不同的字段,例如开始日期或修改后的开始日期。结束日期将始终为同一字段

大多数情况下,将不会有一个修改的开始日期,但我需要一种方式,以满足场景,即开始日期已被修改。 我尝试了以下方法

=IIF(Fields!AmendedStartDate.Value为nothing,DateDiff(“d”,Fields!StartDate.Value,Fields!EndDate.Value,DateDiff(“d,Fields!AmendedStartDate.Value,Fields!EndDate.Value))

我得到一个错误运行一个运行这个

我是报告生成器/SSR的新手,因此我不确定我所要求的是否可能


感谢您抽出时间查看。

您不能执行
字段!FieldName.Value为nothing
,您需要的是
为nothing(Fields!FieldName.Value)

=IIf(无任何内容(字段!修正的StartDate.Value)、DateDiff(“d”,字段!StartDate.Value,字段!EndDate.Value)、DateDiff(“d”,字段!修正的StartDate.Value,字段!EndDate.Value))

或者,您可以使用类似的表达式创建一个计算字段(称为,
startdateouse
):

=IIf(IsNothing(Fields!amendstartdate.Value),Fields!StartDate.Value,Fields!amendstartdate.Value)

然后在主表达式中引用此字段以获得所需的结果:


=DateDiff(“d”,Fields!startdateouse.Value,Fields!EndDate.Value)

您好,我使用了您的替代表达式,这正好满足了我的需要。非常感谢。没问题,谢谢你接受答案。我花了一段时间才了解报表生成器中可用的功能(我每天都在学习!)。