Я пытаюсь получить владельца дела на основе частичного совпадения, при этом мы выбираем самый последний случай, который соответствует частичному совпадению.
Это запрос, который я пытаюсь выполнить:
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» цифры, вы получите номера регистра, например:
- 0001
- 0125
- 1234
- 33456
Можно изменить конфигурацию номеров дел, чтобы получить следующие номера дел , а также номера дела, указанные выше ...
- 000001
- 001234
- 033456
Я не хотел, чтобы людей вводило в заблуждение выражение LIKE
, проблема в том, что 001234 и 1234 - это разные случаи, поэтому, если клиент предоставляет 1234, и я нахожу две записи, я хочу начать с предположения, что это самый последний случай. .
Так что рассмотрите либо оператор LIKE
, либо оператор IN
, содержащий ('001234', '1234')