SSRS:在 Join 中使用 IIF 的表达式会抛出错误
SSRS: Expression with IIF in Join throws error
我有一个具有以下表达式的字段:
=join(iif(参数!FUP_Letter.Value = 1, "Yes", "No"), ", ")
加载报告时,该字段仅显示 '#Error' 而不是 'Yes, No'、'Yes' 或 'No'
当我从此表达式中删除 IIF 子句时,结果只是 '1, 0' 或 '1' 或 '0'
由于我还是 SSRS 的新手,我真的不知道我做错了什么或如何找到我做错了什么,所以如果有人能告诉我错误或帮助我,我将非常感激。
亲切的问候
我怀疑这个错误是由于您试图将一个值与空值连接起来造成的。
IIF 函数不是递归的,因此它将 return 用于您 return 的第一个值,因此在上述情况下它将在评估 1 和 return 是后退出。然后 join 函数尝试将 'yes' 连接到空,因此会出错。
你可以这样做:
=Join(Replace(Replace(Parameters!FUP_Letter.Value,"1","Yes"),"0","No"), ",")
实际使用:
=Replace(Replace(join(Parameters!FUP_Letter.Value, ", "),"1","Yes"),"0","No")
我有一个具有以下表达式的字段:
=join(iif(参数!FUP_Letter.Value = 1, "Yes", "No"), ", ")
加载报告时,该字段仅显示 '#Error' 而不是 'Yes, No'、'Yes' 或 'No'
当我从此表达式中删除 IIF 子句时,结果只是 '1, 0' 或 '1' 或 '0'
由于我还是 SSRS 的新手,我真的不知道我做错了什么或如何找到我做错了什么,所以如果有人能告诉我错误或帮助我,我将非常感激。
亲切的问候
我怀疑这个错误是由于您试图将一个值与空值连接起来造成的。 IIF 函数不是递归的,因此它将 return 用于您 return 的第一个值,因此在上述情况下它将在评估 1 和 return 是后退出。然后 join 函数尝试将 'yes' 连接到空,因此会出错。
你可以这样做:
=Join(Replace(Replace(Parameters!FUP_Letter.Value,"1","Yes"),"0","No"), ",")
实际使用:
=Replace(Replace(join(Parameters!FUP_Letter.Value, ", "),"1","Yes"),"0","No")