Я пытаюсь получить владельца дела на основе частичного совпадения, при этом мы выбираем самый последний случай, который соответствует частичному совпадению.
Это запрос, который я пытаюсь выполнить:
SELECT User.CustomField__c
FROM User
WHERE User.Id IN (
SELECT OwnerId
FROM Case
WHERE Case.CaseNumber LIKE '%1026'
ORDER BY Case.CreatedDate DESC LIMIT 1)
Следующий запрос работает сам по себе, но не выглядит удовлетворительным как часть подзапроса:
SELECT OwnerId
FROM Case
WHERE Case.CaseNumber LIKE '%1026'
ORDER BY Case.CreatedDate DESC LIMIT 1
Точно так же, если я отброшу ORDER BY
и LIMIT
это работает:
SELECT User.NVMContactWorld__NVM_Agent_Id__c
FROM User
WHERE User.Id IN (
SELECT OwnerId FROM Case
WHERE Case.CaseNumber LIKE '%1026')
Разрешены ли запросы порядка / ограничения в подзапросе SOQL?
Чтобы прояснить эту проблему, сценарий, с которым я имею дело, выглядит следующим образом ...
Организация Salesforce может настроить «формат отображения» для номеров обращений. Если они выберут «4» цифры, вы получите номера наблюдений, например:
Можно изменить конфигурацию номеров дел, чтобы получить следующие номера наблюдений а также номера дел выше ...
Я не хотел, чтобы люди были сбиты с толку заявлением LIKE
, проблема состоит в том, что 001234 и 1234 - это разные случаи, поэтому, если клиент предоставляет 1234, и я нахожу две записи, я хочу начать с предположения, что это самый последний случай.
Так что рассмотрите либо оператор LIKE
, либо оператор IN
, содержащий ('001234', '1234')