我无法弄清楚如何创建一个汇总字段,该字段将计算联系人的活跃商机。在帐户级别很容易计算,但是对于与帐户关联的所有机会,这可能与我正在查看的特定联系人有关,也可能没有。
有没有办法查询联系人/机会关系并返回计数?
答案 0 :(得分:2)
您是否使用标准的多对多关系? OpportunityContactRole对象充当两者之间的联结(许多联系人可以参与许多机会)。
或者您是否已经为Opp上的Contact创建了一些自定义查找(我看过只关心一个人的组织,例如称为“主要联系人”)。
(完整图片位于http://www.salesforce.com/us/developer/docs/api/Content/sforce_api_erd_majors.htm;或使用您组织中的“设置” - >“架构构建器”
你可以选择直截了当的SELECT COUNT() FROM OpportunityContactRole WHERE ContactId = '...'
,但是如果有一个机会不止一次列出一个人 - 它会被重复计算。
所以这更好一点:
SELECT Id, Name
FROM Opportunity
WHERE Id IN (SELECT OpportunityId
FROM OpportunityContactRole
WHERE ContactId = '0037000000TWREI')
当然它只是一个存根,一旦你拥有它就可以玩游戏(使用COUNT(Id)
,WHERE Contact.Email = 'joe@example.com'
或增加AND Status = 'Closed Won'
)...