0

我收到以下错误

错误:编译错误:实体 'Lead' 上没有这样的列 'Owner'。如果您尝试使用自定义字段,请务必在自定义字段名称后附加“__c”。请参考您的 WSDL 或相应名称的描述调用。在第 8 行第 17 列

trigger Lead_Assignment on Lead (after insert) {

     List<Lead> le=trigger.new;
     User us=le.get(0).CreatedBy;
    List<User> u=[SELECT id from USER WHERE At_Work__c=true];    
    List<integer> ii=new List<Integer>();
    for(User uu:u){
    Integer xx= [SELECT count() from Lead WHERE Owner=:uu];


    }



}

Lead Object 中有一个名为 Owner 的字段,为什么我会收到此错误,请帮助解决此错误。

4

1 回答 1

6

我认为您最好使用类似于以下的查询:

Integer xx= [SELECT count() from Lead WHERE OwnerId=:uu.Id];

潜在客户对象上的 Owner 字段实际上是对所有者用户对象的引用。如果您执行类似于以下的查询,通常会填充此内容:

[SELECT id, Owner.Name, Owner.Email FROM Lead]

要访问 Owner 字段,您将访问主要对象所有者属性:

Lead myLead = [SELECT Id, Owner.Name, Owner.Email FROM Lead limit 1];
System.debug(myLead.Owner.Email);

但是,这里有一个更大的问题。在这样的循环中查询不是最佳做法。你最好使用如下聚合查询:

 AggregateResult[] results = [SELECT COUNT(ID), OwnerId FROM LEAD GROUP BY OwnerId WHERE OwnerId IN :listOfUserIds]
于 2012-08-23T01:59:10.900 回答