Возможности фильтрации по задачам с использованием SOQL?

Я хотел бы получить все идентификаторы возможностей, у которых есть задача, связанная с определенным человеком.

Я пробовал следующее

Выберите ID из Возможности, где AccountID IN (Выберите AccountID В ЗАДАЧЕ, ГДЕ CreatedBy.Name='Person' ИЛИ ​​LastModifiedBy.Name='Person')

Но я получаю следующую ошибку: ОШИБКА в строке:1: Столбец:80 Объект 'ЗАДАЧА' не поддерживается для полусоединений внутреннего выбора "

Есть ли работа вокруг этого?

1 ответ

Просто в SOQL я не уверен, есть ли способ сделать это. Но если вы делаете это как часть триггера / класса, вы можете сделать что-то вроде этого:

List<Id> accountIds;
List<Task> tasks = [Select AccountID From TASK WHERE AccountId != null AND (CreatedBy.Name='Person' OR LastModifiedBy.Name='Person')];
for(Task task : tasks) {
    accountIds.add(task.AccountId);
}
List<Opportunity> opportunities = [Select ID from Opportunity where AccountID IN :accountIds];
Другие вопросы по тегам