2016-11-24 38 views
1

我已經搜索尋找幫助,但無法找到我所需要的。 我正在嘗試查找兩個日期字段之間的總天數,但啓動日期字段可能來自兩個不同的字段,例如開始日期或修改的開始日期。結束日期將始終是相同的字段。可以在IIF語句中使用DateDiff嗎?

大部分時間不會有修改開始日期,但我需要一種方法來迎合開始日期已被修改的情況。 我嘗試以下

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

我得到一個錯誤跑一跑這一點。

我對Report Builder/SSRS相當陌生,所以我不確定我所要求的是甚至可能的。

感謝您抽出寶貴時間。

回答

1

你不能這樣做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)

+0

嗨,我已經與你的替代表達式,這給了我正是我需要的。非常感謝你。 – Freddie

+0

沒問題,謝謝接受答案。花了我一段時間,讓我的頭腦圍繞在報表製作工具中提供的功能(我仍然在學習每一天!)。 – 3N1GM4

相關問題