【问题标题】:Nested IIF statement to produce 1 of 3 results嵌套 IIF 语句产生 3 个结果中的 1 个
【发布时间】:2016-02-10 04:02:22
【问题描述】:

我正在尝试拼凑一个嵌套的“IIF”语句以生成三个值之一,但我的行不工作

=IIF(Fields!LeaseNumber.value = "", "Vacant",Fields!tenantName.value) AND (IIF(Fields!tenantName.Value ="",Fields!LeaseDBA.Value, Fields!tenantName.Value))

我的预期结果应该是:

如果没有租约# - “空置”

如果没有租户名称 - “LeaseDBA”

所有其他行只给我 - “tenantname”

我查看的所有其他问题似乎都与这种类型的 IIF 条款不匹配。 非常感谢任何帮助。

【问题讨论】:

    标签: reporting-services expression ssrs-2008-r2 iif


    【解决方案1】:

    实际上,我最近只是试图解释 IIF 表达式的工作原理以及如何嵌套它们。 https://stackoverflow.com/a/35289515/4579864

    要检查一个值是 null 还是空,最好使用以下函数之一:

    • 您可以使用IsNothing() 来检查是否有值。应用于您的示例将导致:

      =IIF(IsNothing(Fields!LeaseNumber.value)
      ,"Vacant" 
      ,IIF(IsNothing(Fields!tenantName.Value), Fields!LeaseDBA.Value, Fields!tenantName.Value))
      
    • 你可以用Len()计算你的值的长度,然后检查它是否大于0。

      =IIF(Len(Fields!LeaseNumber.value) > 0 
      ,IIF(Len(Fields!tenantName.Value) > 0, Fields!tenantName.Value, Fields!LeaseDBA.Value)
      ,"Vacant" )
      

    【讨论】:

    • 谢谢。我不确定是否必须再次添加第一个子句,然后再添加结果!
    【解决方案2】:

    如果没有租约# - "Vacant"(如果没有 LeaseNumber 则显示 "Vacant" - 仅字符串)

    如果没有tenantName - "LeaseDBA"(如果没有tenantName 则显示Fields!LeaseDBA.Value

    对于其他行,只需给我Fields!tenantName.Value

    如果这是你想要的,那么试试下面的表达式。

    IIF(Trim(CStr(Fields!LeaseNumber.Value))="","Vacant",CStr(Fields!tenantName.Value)) & IIF(Trim(CStr(Fields!tenantName.Value))="",Fields!LeaseDBA.Value,CStr(Fields!tenantName.Value))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-10-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多