是否可以在 IIF 语句中使用 DateDiff?

Is it possible to use DateDiff in an IIF statement?

我已经搜索过寻求帮助,但找不到我需要的确切内容。 我试图找到两个日期字段之间的总天数,但是起始日期字段可能来自两个不同的字段,例如开始日期或修改后的开始日期。结束日期将始终是同一字段。

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

=IIF(Fields!AmendedStartDate.Value is nothing, DateDiff("d",Fields!StartDate.Value,Fields!EndDate.Value, DateDiff("d",Fields!AmendedStartDate.Value, Fields!EndDate.Value)))

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

我对报告 Builder/SSRS 还很陌生,所以我不确定我的要求是否可行。

感谢您抽空查看。

你不能Fields!FieldName.Value is nothing,你需要IsNothing(Fields!FieldName.Value):

=IIf(IsNothing(Fields!AmendedStartDate.Value),DateDiff("d",Fields!StartDate.Value,Fields!EndDate.Value),DateDiff("d",Fields!AmendedStartDate.Value,Fields!EndDate.Value))

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

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

然后在你的主表达式中引用这个字段来得到你想要的结果:

=DateDiff("d",Fields!StartDateToUse.Value,Fields!EndDate.Value)