左外部結合を QueryExpression で使用して "存在しない" 記録をクエリする
公開日: 2017年1月
対象: Dynamics 365 (online)、Dynamics 365 (on-premises)、Dynamics CRM 2016、Dynamics CRM Online
QueryExpression クラスの使用して、左外部結合を使用し、結合の表をフィルタリングするクエリを実行します。たとえば、過去 2 か月間のキャンペーン活動がない、取引先担当者をすべて検索できます。 このクエリタイプの別のよくある使用法では、次のような場合には存在しないといった、あるセットには存在しないレコードを検索するクエリです。
タスクのないすべての潜在顧客を検索する
取引先担当者のないすべての取引先企業を検索する
1つか、2つのタスクがあるすべての潜在顧客を検索する
左外部結合では、2 番め入力で最初の入力の結合を満たす各列を返します。 また、2 番目入力で一致する列がない最初の入力列を返します。 2 番めの一致しない列が null 値として返されます。
条件演算子として entityname 属性を使用して、QueryExpression で左外部結合を実行できます。entityname 属性は、条件、フィルターおよび入れ子フィルターで有効です。
エイリアス名を使用して、タスクのないすべての潜在顧客を検索する
次の例は、このクエリの作成方法を示しています。
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);
これは次のSQLと等価です。
SELECT lead.FullName
FROM Leads as lead
LEFT OUTER JOIN Tasks as ab
ON (lead.leadId = ab.RegardingObjectId)
WHERE ab.RegardingObjectId is null
関連項目
QueryExpression でクエリを作成する
null 値のテスト
QueryExpression クラスの使用
QueryByAttribute クラスの使用
Microsoft Dynamics 365
© 2017 Microsoft. All rights reserved. 著作権