Спасибо за публикацию запроса. Подзапрос в вашем крайнем предложении SELECT должен ссылаться на отношение. Например, вы можете сделать следующее для объектов Account и Contact, чтобы получить список дочерних контактов для всех учетных записей:
SELECT Id, (SELECT Id FROM Contacts) FROM Account
Я не думаю, что вы добавляете пользовательские отношения в объект User, чтобы подзапрос не будет работать в вашем случае. Если у вас есть пользовательский поиск объекта User в BMCServiceDesk__Incident __ c, то вы можете пройти родительское отношение следующим образом:
SELECT Id, User__r.Department FROM BMCServiceDesk__Incident__c
В отсутствие пользовательских отношений я не думаю, что вы можете сделать внутреннее присоединиться вы пытаетесь в SOQL. Для этого вам может понадобиться код, подобный следующему:
List<String> userEmails = new List<String>();
for(User user : [SELECT Id, Email FROM User WHERE IsActive = TRUE]){
userEmails.add(user.Email);
}
List<BMCServiceDesk__Incident__c> incidents = new List<BMCServiceDesk__Incident__c>([
SELECT Id, BMCServiceDesk__Category_ID__c
FROM BMCServiceDesk__Incident__c
WHERE BMCServiceDesk__clientEmail__c IN :userEmails
]);
System.debug(incidents);
Если вам часто это нужно, возможно, имеет смысл создать страницу Visualforce или компонент Lightning для отображения результатов. Вы также можете добавить триггер к объекту BMCServiceDesk__Incident __ c, чтобы заполнить новое поле, в котором хранится идентификатор пользователя, если электронная почта принадлежит действительному пользователю. Таким образом, вы можете использовать стандартную отчетность для отображения результатов.