Подзапрос с функцией агрегирования, в которой не работает предложение where в SOQL Salesforce - PullRequest
0 голосов
/ 29 июня 2018

Я написал очень простой SOQL-запрос в Salesforce, но он не работает.

SELECT Id, UserId, TerritoryId, IsActive 
FROM UserTerritory 
WHERE UserId NOT IN (SELECT UserId 
                    FROM UserTerritory 
                    GROUP BY UserId  
                    HAVING COUNT(UserId) > 1)

Запрос выше выдает следующее исключение:

  1. В консоли разработчика отображается «Неизвестная ошибка при разборе запроса»
  2. В Workbench это показывает:

MALFORMED_QUERY: (ВЫБЕРИТЕ UserId ИЗ UserTerritory GROUP BY UserId HAVING count (UserId) ^ ОШИБКА в строке: 1: столбец: 114 ожидание правильные скобки, найдено 'ГРУППА'

1 Ответ

0 голосов
/ 30 августа 2018

Такой запрос все равно не имеет смысла.

Допустим, вы упростили исходный SOQL следующим образом:

SELECT Id, UserId, TerritoryId, IsActive 
FROM UserTerritory 
WHERE UserId NOT IN (SELECT UserId FROM UserTerritory)

Salesforce не позволит вам сделать это, и будет выдано исключение:

The inner and outer selects should not be on the same object type

Если ожидается более тщательный анализ, необходимы дополнительные подробности по теме (в идеале, примеры данных).

...