我的高亮显示公式存在一些问题,其中包括有时为空的字段。
我进行的搜索汇总了几个字段:field_A + field_B + field_C。问题在于,在某些情况下,字段C为空或值为0。因此,我试图找到一个公式,说明:如果Field_C为空,请不要在计算中使用它,否则请使用它。我可以使用以下公式在搜索中求和:
在{field_C}为空的情况下To_char({field_A} + {field_B},'9,999,999.99')ELSE To_char({field_A} + {field_B} + {field_C},'9,999,999.99')END
我的问题是,当我尝试突出显示搜索中的某些项目时。基本上,我是将field_D与A到C的总和进行比较。如果field_D高出10%,则表明我们预算不足,如果低10%,则表明我们预算过高。但是我的公式不起作用:
在{Field_C}为空的情况下,在1.1 *(max({Field_A})+ max({Field_B}))> sum({Field_D})之后的情况下,在1.1以后的情况下,否则“ OK”否则“ OVERBUDGET”结束。 *(max({Field_A})+ max({Field_B})+ max({Field_C}))> sum({Field_D})然后'OK'否则'OVERBUDGET'结束END
您在我的公式中看到任何不正确的内容吗?您对如何进行这项工作有任何想法吗?
非常感谢您!
答案 0 :(得分:2)
您可以使用NVL
函数来简化此操作。几乎所有PL / SQL函数都可以在Netsuite FormulaX字段中使用-它们只是未在NS文档中记录。
所以总和公式变为:
NVL({field_A},0) + NVL({field_B},0) + NVL({field_C},0)
测试变为:
CASE
WHEN (sum(NVL({field_A},0) + NVL({field_B},0) + NVL({field_C},0) > 1.1* sum({Field_D}) THEN 'OVERBUDGET'
WHEN (sum(NVL({field_A},0) + NVL({field_B},0) + NVL({field_C},0) < 0.9* sum({field_D} THEN 'UNDERBUDGET'
ELSE 'OK' END
请注意,这些在公式中使用聚合函数意味着为该行选择了一个汇总值。因此,第一个公式的总和为第二个公式的最小,最大或平均值。我不知道它是否已被记录,但公式字段中的任何聚合函数都会覆盖这些摘要列选择并显示公式所隐含的内容。