2011-11-08 11 views
1

날짜 필드가 쿼리하는 개체의 자식에 속하는 날짜별로 내 SOQL 쿼리를 필터링하는 데 문제가 있습니다.Salesforce 하위 쿼리의 Where 절

나는 문서에서 아무것도 찾을 수 없습니다

, 나는 실패 둘 다 두 개의 서로 다른 쿼리, 시도 :

SELECT Name, (SELECT Date__c FROM Child__r) 
FROM Parent Where Date__c >= <todays_date> 

SELECT Name, (SELECT Date__c FROM Child__r) 
FROM Parent Where Child__r.Date__c >= <todays_date> 

는 세일즈 포스이 가능하다조차를?

답변

8

귀하의 질문에서 필터가 정확히 무엇인지 명확하게 밝히지 않았습니다. 그러나 일부 critera와 일치하는 날짜가있는 하위 레코드가있는 부모 목록을 얻으려면 semi-join을 사용할 수 있습니다.

select name from parent where 
     id in (select parentId from child where date__c > :today) 

하위 데이터를 원하는 경우 하위 하위 쿼리에 추가 할 수도 있습니다.

select name, (select someChildFields from child__r) from parent where 
     id in (select parentId from child where date__c > :today) 

이것은 기준을 가진 자녀를 둔 부모를 갖게되며, 각 부모는 모든 자녀를 갖게됩니다. 기준과 일치하는 하위 항목 만 필요하면 하위 조건을 동일한 기준으로 필터링 할 수도 있습니다 (예 : 부모 기록, 예를 들어, 데이터에 당기

select name, (select someChildFields from child__r where date__c > :today) 
     from parent where id in (select parentId from child where date__c > :today) 

마지막으로, 당신이하려는 정확히 무엇에 따라, 당신은 또한 주위를 전환 할 수 있습니다 직접 자식 테이블을 쿼리

select childFields, parent__r.name from child where date__C > :today 
+0

고마워요! 두 번째 쿼리는 제가 찾고있는 쿼리였습니다. 기본적으로 날짜 범위 (자식 개체에있는 날짜 필드)에 따라 부모 개체 목록을 표시하려고합니다. – Scott