Utilisez une jointure externe gauche dans QueryExpression afin de rechercher des enregistrements « pas dans »
Date de publication : janvier 2017
S’applique à : Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online
Vous pouvez utiliser une jointure externe gauche via la classe QueryExpression pour effectuer une requête qui filtre sur la table de jointure, telle que rechercher tous les contacts sans activité de campagne au cours des deux derniers mois. Une autre utilisation courante pour ce type de requête consiste à rechercher des enregistrements « à l’extérieur » d’un ensemble, comme dans les cas suivants :
Rechercher tous les prospects qui n’ont pas de tâche
Rechercher tous les comptes qui n’ont pas de contact
Rechercher tous les prospects qui ont une ou plusieurs tâches
Une jointure externe gauche renvoie chaque ligne qui répond à la jointure de la première entrée avec la seconde entrée. Elle renvoie également toute ligne de la première entrée qui n’avait pas de lignes correspondantes dans la seconde entrée. Les lignes sans correspondance de la seconde entrée sont renvoyées comme valeurs nulles.
Vous pouvez effectuer une jointure externe gauche dans QueryExpression en utilisant l’attribut entityname comme opérateur de condition. L’attribut entityname est valide en termes de conditions, de filtres et de filtres imbriqués.
Rechercher tous les prospects qui n’ont pas de tâche, à l’aide d’un alias
L’exemple suivant montre comment construire cette requête :
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);
Cela équivaut au SQL suivant :
SELECT lead.FullName
FROM Leads as lead
LEFT OUTER JOIN Tasks as ab
ON (lead.leadId = ab.RegardingObjectId)
WHERE ab.RegardingObjectId is null
Voir aussi
Générer des requêtes avec QueryExpression
Tester une valeur nulle
Utiliser la classe QueryExpression
Utiliser la classe QueryByAttribute
Microsoft Dynamics 365
© 2017 Microsoft. Tous droits réservés. Copyright