СЛУЧАЙ, КОГДА текстовое поле не равно значению

avatar
penone
1 июля 2021 в 19:20
720
1
0

В сохраненном поиске Netsuite я пытаюсь создать формулу, которая - частично - дает значение поля, если текстовое поле не равно слову - в этом случае слово "консоль". Я попробовал следующее, но получил ошибку и не понимаю, как это сделать.

CASE WHEN {custbody_eym_exhibitor_name} = 'Consol' THEN {custrecord511.custrecord501} WHEN {custrecord169.custrecord173} IS NOT NULL AND {custbody_eym_exhibitor_name} IS NOT 'Consol' THEN {custrecord169.custrecord173} ELSE {custbody90} END

Любая помощь приветствуется.

Источник

Ответы (1)

avatar
Martha
1 июля 2021 в 23:56
0

Я знаю, что идентификатор ответа набора 10101 предполагает, что вы сможете сделать CASE WHEN -- THEN -- WHEN -- THEN -- ELSE -- END. Однако это никогда не работало для меня в сохраненном поиске. Мне всегда приходилось делать CASE WHEN -- THEN -- ELSE (CASE WHEN -- THEN -- ELSE -- END) END.

Если вы пытаетесь сделать следующее:

Если custbody_eym_exhibitor_name – это консоль, верните custrecord511.custrecord501 и прекратите оценку.

Если custbody_eym_exhibitor_name не является консолью, проверьте, имеет ли custrecord169.custrecord173 значение NULL, и продолжите оценку.

Если custrecord169.custrecord173 имеет значение NULL, вернуть custbody90 и прекратить оценку. Если custrecord169.custrecord173 не равно NULL, верните custrecord169.custrecord173 и прекратите оценку.

Это должно работать:

CASE WHEN {custbody_eym_exhibitor_name}='Consol' THEN {custrecord511.custrecord501} ELSE NVL({custrecord169.custrecord173},{custbody90}) END

Если вы хотите проверить, содержит ли custbody_eym_exhibitor_name консоль, измените {custbody_eym_exhibitor_name}='Consol' на {custbody_eym_exhibitor_name} LIKE '%Consol%' .

Кроме того, оба теста для «Консоли» будут чувствительны к регистру. Чтобы обойти это, вы можете изменить {custbody_eym_exhibitor_name}='Consol' на LOWER({custbody_eym_exhibitor_name})='consol'

.