我收到以下错误
错误:编译错误:实体'Lead'上没有此列“所有者”。如果您尝试使用自定义字段,请务必在自定义字段名称后附加“__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对象中有一个名为Owner的字段为什么我收到此错误,请帮助解决此错误。
答案 0 :(得分:5)
我认为使用类似下面的查询会更好:
Integer xx= [SELECT count() from Lead WHERE OwnerId=:uu.Id];
主题对象上的所有者字段实际上是对所有者用户对象的引用。通常,如果您执行类似于以下的查询,则会填充此内容:
[SELECT id, Owner.Name, Owner.Email FROM Lead]
要访问所有者字段,您将访问潜在客户对象所有者属性:
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]