【问题标题】:Combining IIF statements in ssrs在 ssrs 中结合 IIF 语句
【发布时间】:2016-11-10 12:31:50
【问题描述】:

我正在尝试在 SSRS 中组合以下 IIF 语句,但似乎无法正确运行代码。有人可以帮忙吗?

=Iif(IsNothing(Fields!Description.Value) and fields!CallFlag.Value = "1" , "New Record to Dial", Fields!Description.Value, Iif(IsNothing(Fields!Description.Value) 和 fields!CallFlag.Value = "0" , "Do Not Call", Fields!Description.Value, Iif(IsNothing(Fields!Description.Value) 和 isnothing(fields!CallFlag.Value), "Load Reject", Fields!Description.Value)

【问题讨论】:

  • 你有 3 个 IIf。语法应该类似于 IIF(boolean, TRUE-value,False-value)。你所拥有的是 IIF(boolean,TRUE-value, FALSE-value,IIF...) 第二个和第三个 iif 你想要什么?
  • 只是尝试格式化您的代码表明存在问题。 IIF 接受 3 个参数(条件、真结果和假结果),您试图传递超过 3 个参数。目前尚不清楚您要达到的目标。
  • 您好,很抱歉有任何混淆,我有一列包含来自 SQL 的空值 null。我想用取决于字段的某些文本填充描述字段!CallFlag.Value =“0”值,如果它的 1 然后用“不调用”填充空白,或者如果它 = 1 然后用“新记录到拨号”

标签: sql-server reporting-services sql-server-data-tools


【解决方案1】:

IIF 语句读取 IIF(boolean, TRUE-value, FALSE-value)。在您的情况下,您的意思是:如果 callflag=1 则“新记录”,否则如果 callflag=2 则.......

这会导致:

=Iif(IsNothing(Fields!Description.Value) and fields!CallFlag.Value = "1" ,
  "New Record to Dial", 
  Iif(IsNothing(Fields!Description.Value) and fields!CallFlag.Value = "0" ,
    "Do Not Call", 
    Iif(IsNothing(Fields!Description.Value) and isnothing(fields!CallFlag.Value),  
      "Load Reject", 
      Fields!Description.Value
    )
  )
)

如果你重新配置你会得到:

=Iif(IsNothing(Fields!Description.Value) and fields!CallFlag.Value = "1" ,
  "New Record to Dial", 
  Iif(IsNothing(Fields!Description.Value) 
    iif(isnothing(fields!CallFlag.Value), "Load Reject",
      Iif(fields!CallFlag.Value = "0" ,   "Do Not Call", 
        Iif(fields!CallFlag.Value = "1" ,   "New Record to Dial", "Error on CallFlag Value")
      )
    )
 , Fields!Description.Value)

甚至更好:如果您使用 SQL-server 作为标签指示,请使用 CASE 命令...CASE command in SQL

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多