案例说明(报表生成器)
Case Statement (Reportbuilder)
我有以下案例陈述,AppointmentDate 并不总是被填充,因此需要从其他日期字段中提取 - 希望有一个约会日期(从许多字段中填充)
当运行这个语句,不return完整的结果。
,个案=约会
当 AppointmentDate 为 Null 时,则 ChaseDate
当 ChaseDate 为空则 DueDate
其他约会日期
结束
有没有想过我哪里做错了?
提前致谢。
您没有说明这是 SSRS 中的表达式还是您的数据集查询的一部分。
假设 SQL 服务器在这里...
如果这是您的数据集查询的一部分,那么您可以执行类似
的操作
SELECT
FieldA, FieldB,
myAppointmentDate = COALESCE(AppointmentDate, ChaseDate, DueDate)
FROM myTable
COALESCE
将 return 第一个非空值
如果您尝试在 SSRS 表达式中执行此操作,则需要使用 SWITCH()
语句。
=SWITCH(
Fields!AppointmentDate.Value <> Nothing, Fields!AppointmentDate.Value,
Fields!ChaseDate.Value <> Nothing, Fields!ChaseDate.Value,
Fields!DueDate.Value <> Nothing, Fields!DueDate.Value,
True, Fields!AppointmentDate.Value
)
这将 return 第一个表达式 true
,如果前三个表达式中的非表达式 return 为真,最后的 True
就像一个 else(在你的情况下 return Nothing
无论如何)
我有以下案例陈述,AppointmentDate 并不总是被填充,因此需要从其他日期字段中提取 - 希望有一个约会日期(从许多字段中填充)
当运行这个语句,不return完整的结果。
,个案=约会 当 AppointmentDate 为 Null 时,则 ChaseDate 当 ChaseDate 为空则 DueDate 其他约会日期 结束
有没有想过我哪里做错了?
提前致谢。
您没有说明这是 SSRS 中的表达式还是您的数据集查询的一部分。
假设 SQL 服务器在这里...
如果这是您的数据集查询的一部分,那么您可以执行类似
的操作SELECT
FieldA, FieldB,
myAppointmentDate = COALESCE(AppointmentDate, ChaseDate, DueDate)
FROM myTable
COALESCE
将 return 第一个非空值
如果您尝试在 SSRS 表达式中执行此操作,则需要使用 SWITCH()
语句。
=SWITCH(
Fields!AppointmentDate.Value <> Nothing, Fields!AppointmentDate.Value,
Fields!ChaseDate.Value <> Nothing, Fields!ChaseDate.Value,
Fields!DueDate.Value <> Nothing, Fields!DueDate.Value,
True, Fields!AppointmentDate.Value
)
这将 return 第一个表达式 true
,如果前三个表达式中的非表达式 return 为真,最后的 True
就像一个 else(在你的情况下 return Nothing
无论如何)