【问题标题】:Need help "translating" an excel formula to an SSRS expression需要帮助将 excel 公式“翻译”为 SSRS 表达式
【发布时间】:2019-01-05 01:54:33
【问题描述】:

如何将嵌套的 If() Excel 公式翻译成 SSRS 语言?

我还没有尝试,甚至不知道如何开始。我是ssrs的新手。 Excel公式如下:

=IF(A1>B1,"NO TEST",(IF(C1="4567","NEW","OLD")))

注意:A 和 B 是日期时间值,C 是数据类型 char(6) {“OK”或“4567”}。 B 可以为 NULL。

我想要完成的是在报告的文本框中显示“NO TEST”、“NEW”或“OLD”。

【问题讨论】:

    标签: reporting-services logic operators


    【解决方案1】:

    类似于 Excel。 4567 表示数字,"4567" 表示字符串:

    =IFF(CDate(Fields!A1.Value) > IFF(IsDate(Fields!B1.Value),  Fields!B1.Value, "01.01.1900"), "No Test", IFF(Fields!C1.Value = "4567", "New", "Old"))
    

    如果B1 可以为空,则必须将其过滤掉,或者检查Null,因为CDate() 函数将抛出Null 错误。

    【讨论】:

    • 感谢您的回复。当我等待某人以相同的结果回答时,我实际上尝试了一些与您的回答“相似”的东西。它是这样的: =IIF(Fields!A1.Value>Fields!B1.Value,"NO TESTING REQD",(IIF(Fields!C1.Value="4567 ","NEW","OLD")))" 。不过,我确实根据您的建议更改了它。这很有趣。
    • 所以我有一个关于 NULL 值的后续问题。因此 SQL 查询将“NULL”发送到 SSRS。在 SSRS 中,B1 的字段为空,因此 IIF A1>B1 的计算始终为真,因为值大于无。所以我一直在研究 IsNothing 函数。我想在上面的表达式之前加上 if B1 is nothing then B1="12/31/2050" 所以 A1>B1 的比较总是错误的(嗯,直到 2050 年 12 月 31 日)和其余的逻辑继续没有错误。
    猜你喜欢
    • 2018-12-26
    • 1970-01-01
    • 2022-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-04
    • 1970-01-01
    • 2012-11-30
    相关资源
    最近更新 更多