因此,如果我理解正确,您已向数据集添加了一个字段,该字段使用表达式根据其他两个字段(CreatedDate 和 ClosedDate)计算“打开天数”值。
您已经知道 Days Open 的值可以是 1 - 50 并且您知道您想要什么范围,因此您可以将另一个计算字段添加到基于与 Days Open 相同的计算的数据集中,例如
假设您现有的开放天数计算是
=DateDiff(DateInterval.Day, Fields!CreatedDate.Value, Fields!ClosedDate.Value)
那么你可以添加
=Switch(
DateDiff(DateInterval.Day, Fields!CreatedDate.Value, Fields!ClosedDate.Value) > 0 And
DateDiff(DateInterval.Day, Fields!CreatedDate.Value, Fields!ClosedDate.Value) <=5,
"1-5 Days",
DateDiff(DateInterval.Day, Fields!CreatedDate.Value, Fields!ClosedDate.Value) > 5 And
DateDiff(DateInterval.Day, Fields!CreatedDate.Value, Fields!ClosedDate.Value) <=10,
"6-10 Days",
DateDiff(DateInterval.Day, Fields!CreatedDate.Value, Fields!ClosedDate.Value) > 11 And
DateDiff(DateInterval.Day, Fields!CreatedDate.Value, Fields!ClosedDate.Value) <=15,
"11-15 Days",
...
DateDiff(DateInterval.Day, Fields!CreatedDate.Value, Fields!ClosedDate.Value) > 45 And
DateDiff(DateInterval.Day, Fields!CreatedDate.Value, Fields!ClosedDate.Value) <=50,
"45-50 Days"
)
虽然如果您可以修改数据集的实际 SQL 查询以执行 Datediff 函数,这可以大大简化,例如在 SQL Server 的 T-SQL 中,您可以添加
SELECT
...
DATEDIFF(dd, CreatedDate, ClosedDate) AS DaysOpen
...
FROM
...
这将为您提供可以在上述表达式中使用的单个数据集查询字段,例如
=Switch(
Fields!DaysOpen.Value) > 0 And
Fields!DaysOpen.Value) <=5,
"1-5 Days",
无论您采用哪种计算方式,您都可以使用此 Dataset 字段,该字段包含 Tablix 中简单分组表达式中的范围值。