2013-11-05 6 views

답변

2

다음에 자세한 정보를 제공해주십시오. 일반적으로 말하면 참조 이름 옆에 부모 개체를 참조하고 점으로 표시 할 수 있습니다. 여기에 예제가 있습니다

Select Account.Name, AccountId From Task Where Account.Name = 'John' 

여기서 Account는 (작업의) 참조 이름이고 AccountId는 참조 필드입니다.

+0

[선택 t.subject, t.Description, t.Id, t.WhatId 작업 t에서] 내 쿼리이지만 계정이나 연락처와 관련된 작업 만 필요합니다 계정 또는 연락처 ID –

+0

AccountId! = null 또는 WhatId! = null –

0

어떻게

에 대한

또는 parentid 또는 parentid (계정 곳 ...에서 ID를 선택)의 작업에서

에서 {열 목록 (접촉 곳에서 ID를 선택 ...) 경우 당신이 목록 (우리가 IDLIST를 사용합니다)에 접촉 또는 계정 ID가 이미 정점 내부이고, 당신은 사용할 수 있습니다

에서 {열 목록]을 작업 어디에서 parentid에서 : IDLIST

+0

죄송합니다. 계정이나 연락처 ID를 사용할 수 없습니다. 쿼리를 필터링하십시오. 난 그냥 모든 필드에 Account 또는 Contact ID가 포함 된 모든 작업을 원한다. Smply 계정 또는 연락처 개체와 관련된 작업 –

0

귀하의 질문 조금 불분명하다. 과 관련된 모든 작업을 찾고 있습니까? 계정 또는 연락처 또는 특정 계정 또는 연락처?

전자의 경우,

 
    SELECT Id, Subject, 
    FROM TASK 
    WHERE 
     What.Type = 'Account' OR 
     Who.Type = 'Contact' 

후자의 경우, 이미 모티에 의해 제안 IN :list 구문을 사용하십시오. 예를 들어 OPPORTUNITIES와 관련된 작업이 반환되지 않으므로 AccountId!=null과 대조적으로 What.Type이 유용합니다 (해당 동작을 원할 경우 AccountId!=null을 사용하고 모든 연락처를 OPPORTUNITIES와 연결하면 Who.Type을 삭제할 수 있습니다)).

어느 경우이든 다형성 필드는 제한된 수의 필드에만 액세스 할 수 있기 때문에 문제는 CONTACT에서 특정 데이터를 가져옵니다. 지금 그 목록을 찾을 수없는 것 같습니다. 저는 오래된 SOQL이 하나의 쿼리에서이를 수행하는 구문을 지원한다고 생각하지 않습니다. 이것이 SOQL 다형성이 그렇게 강세를 보이는 이유입니다. 당신이 SOQL TYPEOFavailable to you이있는 경우

이제, 당신은 같은 더 흥미로운 일을 할 수 있어야한다 :

 
    SELECT Id, Subject, 
    TYPEOF What 
     WHEN Account THEN AccountNumber 
    END, 
    TYPEOF Who 
     WHEN Contact THEN FirstName 
    END 
    FROM Task 
    WHERE 
     What.Type = 'Account' OR 
     Who.Type = 'Contact'