SOQL Salesforce中where子句不起作用的带有聚合函数的子查询

时间:2018-06-29 19:12:21

标签: salesforce soql

我在Salesforce中编写了一个非常简单的SOQL查询,但是它不起作用。

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

上面的查询抛出以下异常:

  1. 在开发人员控制台中,它显示“未知的错误解析查询”
  2. 在工作台中,它显示:
  

MALFORMED_QUERY :(从UserTerritory GROUP BY中选择用户ID   UserId HAVING count(UserId)^错误,在第1行:第114列预期   右括号,找到“ GROUP”

1 个答案:

答案 0 :(得分:0)

这样的查询还是没有道理的。

假设您已按照以下方式简化了原始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

如果期望进行更彻底的分析,则需要有关该主题的其他详细信息(理想情况下是数据示例)。