Netsuite - 保存的搜索公式(文本)Case 语句乘以 2 个字段

Netsuite - Saved Search Formula(text) Case statement multiply 2 fields

我试图在 Netsuite 保存的搜索中获取公式(文本)行的 CASE 语句的 'ELSE' 部分中的 2 个字段的乘积,但我一直在获取 'ERROR: Invalid Expression'当我运行搜索的时候。当前公式为:

CASE WHEN {binonhandcount} = 0 THEN '0' ELSE NVL({binonhandcount}, 0) * NVL({locationaveragecost}, 0) END

我试图通过做这样的事情来简化它:

CASE WHEN {binonhandcount} = 0 THEN '0' ELSE 1 + 1 END

但它仍然因无效表达式错误而失败。我所做的所有谷歌搜索让我相信这个 应该 有效,但我似乎找不到我的错误。我希望这里额外的眼睛可以给我一个正确的方向。谢谢。

公式返回的数据类型需要与所选的公式类型相匹配。您可以通过将其设置为公式(数字)类型并简单地删除第一个 THEN:

后“0”周围的引号来更正您的公式
CASE WHEN {binonhandcount} = 0 THEN 0 ELSE NVL({binonhandcount}, 0) * NVL({locationaveragecost}, 0) END

或者如果您出于某种原因确实需要文本公式,您可以将 ELSE 语句包装在 TO_CHAR 函数中:

CASE WHEN {binonhandcount} = 0 THEN '0' ELSE TO_CHAR(NVL({binonhandcount}, 0) * NVL({locationaveragecost}, 0)) END

在您的 NetSuite 保存的搜索中,将 Formula(text) 替换为 Formula(Numeric)。

你的公式是:

CASE WHEN {binonhandcount} = 0 THEN 0 ELSE NVL({binonhandcount}, 0) * NVL({locationaveragecost}, 0) END

请从 THEN '0' 中删除字符串。你应该没事的。