【问题标题】:Case Statement (Reportbuilder)案例陈述(报表生成器)
【发布时间】:2021-02-10 20:10:17
【问题描述】:

我有以下案例陈述,AppointmentDate 并不总是被填充,因此需要从其他日期字段中提取 - 希望有一个约会日期(从多个字段填充)
运行此语句时,不会返回完整结果。

,Case=约会 当 AppointmentDate 为 Null 时,ChaseDate 当 ChaseDate 为 Null 时 DueDate 其他预约日期 结束

对我哪里出错了有什么想法吗?

提前谢谢你。

【问题讨论】:

    标签: reporting-services reportbuilder3.0


    【解决方案1】:

    您没有说明这是否应该是 SSRS 中的表达式,或者这是您的数据集查询的一部分。

    假设这里是 SQL Server...

    如果这是您的数据集查询的一部分,那么您可以执行类似的操作

    SELECT 
        FieldA, FieldB,
        myAppointmentDate = COALESCE(AppointmentDate, ChaseDate, DueDate)
    FROM myTable
    

    COALESCE 将返回第一个非空值

    如果您尝试在 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
           )
    

    这将返回第一个表达式 true,如果前三个表达式中没有一个返回 true,则最后一个 True 就像一个 else(在你的情况下它会返回 Nothing

    【讨论】:

    • 抱歉,部分数据集查询
    • 好的,所以只是上面的 COALESCE 示例。列的顺序很重要,COALESCE 将返回第一个非空值。
    猜你喜欢
    • 1970-01-01
    • 2012-09-08
    • 2013-12-24
    • 2012-08-11
    • 2023-04-10
    • 2010-10-30
    • 2016-05-13
    • 2016-02-21
    • 1970-01-01
    相关资源
    最近更新 更多