2013-04-10 10 views
0

내가 한을 포함한 모든 값을 반환 : 캠페인 멤버 목록이의 연락처가있는 한세일즈 포스 SOQL 쿼리는 간단한 SOQL 쿼리 NULL

 
select Count(ID), CampaignId, Campaign.Name 
from CampaignMember 
where CampaignId in ('701U0000000MVoQ', '701U0000000MLFR', '701U0000000MVoL') 
group by CampaignId, Campaign.Name 

쿼리의 결과는 다시이 개 기록을 제공합니다.

또한 세 번째 레코드를 가져오고 싶습니다. SOQL에서이 작업을 수행 할 수있는 방법이 있습니까? ISNULL() 함수를 사용할 수 있다고 생각하지 않습니다. 고르다.

답변

2

왜 집계 쿼리가 필요한 특별한 이유가 있습니까? 그것을 할 수있는 한 가지 방법은 그와 같은 관계를 사용하는 것입니다 :

SELECT Id, Name, (SELECT Id FROM CampaignMembers) 
FROM Campaign 
WHERE Id IN ('701U0000000MVoQ', '701U0000000MLFR', '701U0000000MVoL') 

나중에 코드 만 더욱, 어떻게 행의 양을 제한 할 수

List<Campaign> campaigns = [Id, Name, (SELECT Id FROM CampaignMembers) 
FROM Campaign 
WHERE Id IN ('701U0000000MVoQ', '701U0000000MLFR', '701U0000000MVoL')]; 

for(Campaign c : campaigns){ 
    System.debug(c.Name + ': ' + c.CampaignMembers.size()); 
} 
+0

감사의 눈썹, 그 일을 내 원래의 방법보다 훨씬 더 의미가 있습니다. – Ronnie

0

"Have"라는 soql 쿼리에 추가 부분을 추가해야합니다. 제

select Count(ID), CampaignId, Campaign.Name 
from CampaignMember 
where CampaignId in ('701U0000000MVoQ', '701U0000000MLFR', '701U0000000MVoL') 
group by CampaignId, Campaign.Name 
HAVING COUNT(ID) >0 

갖는이 Where 절 좋아하지만 HAVING 절은 또한 GROUP BY에 나타나는 컬럼에 적용되는 경우 갖는은 같다.

+0

'HAVING'처럼 액세스 할 수 있습니다 그것을 확장하기 위해 사용할 계획입니까? – eyescream