做一个表达式我收到错误,有人可以在这里告诉我正确的语法吗?
=IIf(Fields!t_cpcp.Value ="310", "Purchased Material & Raw Material", Nothing)
=IIf(Fields!t_cpcp.Value ="320", "Manufacturing Direct Labor", Nothing)
=IIf(Fields!t_cpcp.Value ="325", "Subcontract Cost", Nothing)
=IIf(Fields!t_cpcp.Value ="330", "Engineering Direct Labor", Nothing)
=IIf(Fields!t_cpcp.Value ="340", "Manufacturing Labor O/H", Nothing)
=IIf(Fields!t_cpcp.Value ="345", "Engineering Labor O/H", Nothing)
=IIf(Fields!t_cpcp.Value ="350", "Material O/H", Nothing)
=IIf(Fields!t_cpcp.Value ="355", "Labor O/H Surcharge", Nothing)
=IIf(Fields!t_cpcp.Value ="360", "Subcontract Material Burden", Nothing)
=IIf(Fields!t_cpcp.Value ="MFD", "Manufactured Items", Nothing)
答案 0 :(得分:9)
如果您希望这一切都在一个表达式中,您可能需要使用SWITCH语句:
=Switch(<condition>, <return value if true>, <next condition>, <return value if true>, ...)
switch语句将返回第一个条件为true的值。使用您的示例,您可以尝试:
=Switch(Fields!t_cpcp.Value ="310", "Purchased Material & Raw Material",
Fields!t_cpcp.Value ="320", "Manufacturing Direct Labor",
Fields!t_cpcp.Value ="325", "Subcontract Cost",
...rest of them go here...)
答案 1 :(得分:1)
另一种不太优雅的方法是嵌套你的IIF语句
=IIf(Fields!t_cpcp.Value ="310", "Purchased Material & Raw Material",IIf(Fields!t_cpcp.Value ="320", "Manufacturing Direct Labor",IIf(Fields!t_cpcp.Value ="325", "Subcontract Cost",IIf(Fields!t_cpcp.Value ="330", "Engineering Direct Labor",IIf(Fields!t_cpcp.Value ="340", "Manufacturing Labor O/H",IIf(Fields!t_cpcp.Value ="345", "Engineering Labor O/H",IIf(Fields!t_cpcp.Value ="350", "Material O/H",IIf(Fields!t_cpcp.Value ="355", "Labor O/H Surcharge",IIf(Fields!t_cpcp.Value ="360", "Subcontract Material Burden",IIf(Fields!t_cpcp.Value ="MFD", "Manufactured Items", Nothing))))))))))
您还可以在查询中执行逻辑:
CASE t_cpcp WHEN '310' THEN 'Purchased Material & Raw Material'
WHEN '320' THEN 'Manufacturing Direct Labor'
WHEN ... THEN ....
ELSE ''
END as t_cpcp_DESC