Usar uma junção externa à esquerda em QueryExpression para consultar registros “não incluídos”

 

Publicado: novembro de 2016

Aplicável a: Dynamics CRM 2015

É possível usar uma junção externa à esquerda usando a classe QueryExpression para realizar uma consulta que filtra a tabela de junção, como para localizar todos os contatos que não tiveram atividades de campanha nos últimos dois meses. Outro uso comum para este tipo de consulta é localizar os registros que “não estão incluídos” em um conjunto, como nesses casos:

  • Localizar todos os clientes potenciais que não tenham tarefas

  • Localizar todas as contas que não tenham contatos

  • Localizar todos os clientes potenciais que tenham uma ou mais tarefas

Uma junção externa à esquerda retorna cada linha que atende à junção da primeira entrada com a segunda entrada. Ela também retorna todas as linhas da primeira entrada que não tenham linhas correspondentes na segunda entrada. As linhas sem correspondência da segunda entrada são retornadas como valores nulos.

É possível executar uma junção externa à esquerda em QueryExpression usando o atributo entityname como um operador de condição. O atributo entityname é válido em condições, filtros e filtros aninhados.

Localizar todos os clientes potenciais que não tenham tarefas usando um alias

O exemplo a seguir mostra como criar esta consulta:

QueryExpression qx = new QueryExpression("lead");
qx.ColumnSet.AddColumn("subject");

LinkEntity link = qx.AddLink("task", "leadid", "regardingobjectid", JoinOperator.LeftOuter);
link.Columns.AddColumn("subject");
link.EntityAlias = "tsk";

qx.Criteria = new FilterExpression();
qx.Criteria.AddCondition("tsk", "activityid", ConditionOperator.Null);

Isto é equivalente ao seguinte SQL:

SELECT lead.FullName
FROM Leads as lead
LEFT OUTER JOIN Tasks as ab
ON (lead.leadId  =  ab.RegardingObjectId)
WHERE ab.RegardingObjectId is null

Confira Também

Criar consultas com QueryExpression
Testar para um valor nulo
Use a classe QueryExpression
Usar a classe de QueryByAttribute

© 2017 Microsoft. Todos os direitos reservados. Direitos autorais