在 NetSuite 中使用一个案例来比较另一个案例的结果

Using a case when result for comparison in another case when in NetSuite

我正在尝试 运行 NetSuite 中使用公式和字段保存的搜索的方程式。

我可以运行这个并且我得到正确的值:

CASE WHEN {systemnotes.context}='UI' AND {systemnotes.field}='Date Closed' THEN {systemnotes.newvalue} END

而且,这个 return 是正确的值:

{startdate}

但是,我不知道怎么说,如果第一种情况 return 不是空值,而第二种情况不是空值,那么请告诉我两者之间的区别。我正在尝试这样的事情(有许多不同的变化:

CASE WHEN [(CASE WHEN {systemnotes.context}='UI' AND {systemnotes.field}='Date Closed' THEN {systemnotes.newvalue} END) IS NOT NULL AND {startdate} IS NOT NULL] THEN
{CASE WHEN {systemnotes.context}='UI' AND {systemnotes.field}='Date Closed' THEN {systemnotes.newvalue} END)-{startdate}

结束

每次我 运行 它都会得到无效的表达式。不过,我用 Google 搜索了一下,似乎没有找到任何讨论此类操作的内容。

下面的公式对我有用。我不知道你 运行 反对什么记录类型,所以我只是向名为 Test Date Field 的案例记录添加了一个自定义日期字段。只需将字段名称替换为您的名称即可。

关键是 {systemnotes.newvalue} returns 文本,因此您需要将结果包装在 TO_DATE() 中以进行转换。然后你可以从中减去{startdate}

您的列类型应为公式(数字)。

case when 
(CASE WHEN {systemnotes.context}='UI' AND {systemnotes.field}='Test Date Field' THEN {systemnotes.newvalue} END is not null and {startdate} is not null)
then (TO_DATE(CASE WHEN {systemnotes.context}='UI' AND {systemnotes.field}='Test Date Field' THEN {systemnotes.newvalue} END) - {startdate}) END