2012-11-28 4 views
4

영향을받는 캠페인의 목록을 반환하는 SOQL 쿼리를 만들려고합니다. 이름이 같은 표준 캠페인 보고서와 비슷합니다. 다음은 보고서와 동일한 값을 반환하지 않는 것 같습니다.영향을받은 salesforce SOQL 캠페인

SELECT Id,Name FROM Opportunity 
where CampaignId in (SELECT CampaignId from CampaignMember where CampaignId = '??') 

모든 도움을 주시면 감사하겠습니다. 당신이 간단한 일 이후 인 경우

답변

3

-이 충분 있습니다

SELECT Campaign.Name, Campaign.NumberOfOpportunities, SUM(Amount), COUNT(Id) 
FROM Opportunity 
WHERE CampaignId != null AND CloseDate = THIS_MONTH 
GROUP BY Campaign.Name, Campaign.NumberOfOpportunities 

:

SELECT Campaign.Name, Id, Name, Amount 
FROM Opportunity 
WHERE CampaignId != null AND CloseDate = THIS_MONTH 

당신은 쉽게 당신에게 캠페인 당 합계를 너무 줘야 할 것 집계 쿼리로 변환 할 수 있습니다 (Campaign.NumberOfOpportunities과 Opps가 일치하지 않으면 첫 번째 필드가 "전체 시간 카운터"이고 이후 하나가 WHERE CloseDate = THIS_MONTH의 영향을 받음)


보고서 (특히 "응답 됨")가 반환 한 것과 같은 전체 데이터 세트가 필요하면 ERD diagram for these objects이 약간 고약하기 때문에 까다로울 수 있습니다.

캠페인 영향을 통해 마케팅 담당자는 단일 기회에 영향을받은 여러 캠페인을 측정하고보고 할 수 있습니다.

우리는 어떻게 든 연락처에서 시작할 수 있습니다. OpportunityContactRole을 통해 기회로 이동하십시오. 그리고 Contact에서 CampaignMembers to Campaign (CampaignMembers to Campaign)으로 이동하십시오.

SELECT Name, Email, Account.Name, 
    (SELECT HasResponded, Campaign.Name FROM CampaignMembers), 
    (SELECT Opportunity.Name, Opportunity.Amount FROM OpportunityContactRoles) 
FROM Contact 
LIMIT 10 

당신은 그러나 캠페인 이름을 얻기 위해 쿼리의 결과를 처리해야 할 것 (내가 서브 쿼리는 예를 들어 데이터 로더로 내보낼 수 있습니다 생각하지 않는다).


마지막으로 - 당신이 하나 개의 캠페인 또는 하나 개의 OPP에 관심이 있다면이 단순화 될 수있다 (그리고 당신이 아주 가까웠다!) 당신의 신속하고 상세한위한

SELECT Contact.Name, Opportunity.Account.Name, Opportunity.Name, Opportunity.Amount 
FROM OpportunityContactRole 
WHERE ContactId IN (SELECT ContactId FROM CampaignMember WHERE Campaign.Name = 'Sample Campaign') 
+0

감사합니다 응답. 이것은 매우 도움이되었습니다. – rms58

+0

마지막 예는 내가 찾고있는 것에 가장 가깝지만 WHERE 절의 캠페인에 연결된 기회뿐만 아니라 연락처에 대한 모든 기회 목록을 반환하기 때문에 막혔습니다. – rms58

+0

'... 그리고 Opportunity.Campaign.Name = '샘플 캠페인'을 끝에 추가 하시겠습니까? – eyescream

관련 문제