FetchXML过滤器 - 比较两个不同实体的属性?

时间:2016-02-18 14:53:26

标签: fetchxml

我正在尝试构建一个与以下SQL查询相同的FetchXML查询。基本上,如果约会上的自定义属性“dev_ownercommunityid”等于商机的ownerid属性,则输出商机名称和链接约会的主题。

select top 10 o.[name], apt.[subject]
from Opportunity o with (nolock)
left join Appointment apt with (nolock)
on o.opportunityid = apt.regardingobjectid
where apt.dev_ownercommunityid = o.ownerid  
/* dev_ownercommunityid is a custom attribute we added to appointment entity */

我可以轻松地进行外连接,但我无法弄清楚如何做“where”部分。

请帮忙。我正在使用Dynamics CRM 2013。

2 个答案:

答案 0 :(得分:0)

不幸的是,这是不可能的。您无法直接比较两列。比较的一方必须是恒定值。有关详细信息,请参阅https://www.kingswaysoft.com/blog/2013/06/18/Limitations-with-CRM-FetchXML

答案 1 :(得分:0)

在最新版本(2020年7月)中,此功能可用于使用valueof标签比较fetchxml中同一实体的两个属性,也可以使用SDK和Web api。 Read more

<fetch>
  <entity name='contact' >
    <attribute name='firstname' />
    <filter>
      <condition attribute='firstname' operator='eq' valueof='lastname'/>
    </filter>
  </entity>
</fetch>

在不久的将来,我们可能会获得在两个实体属性之间进行比较的选项。请仔细阅读上述文档。

然后,我们必须在单独的查询中获取相关的实体属性值,并将其作为参数过滤器传递给主查询。