0

嗨,我在 SSRS 表达式中运行以下嵌套 if 语句时遇到问题

= SUM(IIF(UCASE(TRIM(Fields!UOP.Value))="Y", IIF(UCASE(TRIM(Fields!HED.Value))="Y",
  IIF(UCASE(TRIM(Fields!FROMB.Value))="RED",
IIF(UCASE(TRIM(Fields!TOB.Value))="BLUE",1,0),0),0))

不知道我的括号是否在正确的位置......

基本上,只有当所有 if 语句都为真并且具有上述值时,我才想找到表达式的总和,否则。

4

1 回答 1

1

让我们剖析你的陈述:

=SUM(
    IIF(UCASE(TRIM(Fields!UOP.Value))="Y", 
        IIF(UCASE(TRIM(Fields!HED.Value))="Y",
            IIF(UCASE(TRIM(Fields!FROMB.Value))="RED",
                IIF(UCASE(TRIM(Fields!TOB.Value))="BLUE",
                    1,
                    0),
            0),
        0)
    )

你的括号不平衡,你错过了第一个的错误论点IIF

或者,您可以反转您的条件并SWITCH改为使用,这会更容易阅读:

=SUM(Switch( _
    UCASE(TRIM(Fields!UOP.Value))<>"Y", UOPFalseValue, _
    UCASE(TRIM(Fields!HED.Value))<>"Y", 0, _
    UCASE(TRIM(Fields!FROMB.Value))<>"RED", 0, _
    UCASE(TRIM(Fields!TOB.Value))<>"BLUE", 0, _
    True, 1))

或者,由于您的错误值始终为 0,因此您可以使用以下条件组合条件And

=SUM(IIF(And(And(And(UCASE(TRIM(Fields!UOP.Value))="Y", _
    UCASE(TRIM(Fields!HED.Value))"Y"), _
    UCASE(TRIM(Fields!FROMB.Value))="RED"), _
    UCASE(TRIM(Fields!TOB.Value))="BLUE"), 1, 0))
于 2013-07-29T01:38:18.493 回答