如何使用 fetch 进行过滤以获得准确的结果?
How to filter using fetch to get accurate results?
我需要获取所有在 state
而非 open
中有电话呼叫的帐户,因此我创建了一个查询并获得了一些结果。
检查我的结果后,我发现我得到的所有帐户至少有 1 个未打开的电话,但我需要获得 所有 个已连接电话的帐户未打开(甚至不能有 1 个处于打开状态)是否可以通过获取来完成?
** NOT OPEN 是指已取消或已完成的状态。
这是我的提取查询:
@"<fetch version='1.0' output-format='xml-platform' mapping='logical' distinct='true'>
<entity name='account'>
<attribute name='name' />
<order attribute='accountamount' descending='true' />
<link-entity name='phonecall' from='regardingobjectid' to='accountid' alias='ab'>
<filter type='and'>
<condition attribute='statecode' operator='ne' value='0' />
</filter>
</link-entity>
</entity>
</fetch>";
您要查找的是不匹配查询。这可以在使用 fetchxml 的 2 个查询中实现。
第一个查询:您必须提取所有有未接电话的帐户。
<fetch version="1.0" output-format="xml-platform" mapping="logical" distinct="true" >
<entity name="account" >
<attribute name="accountid" />
<order attribute="accountamount" descending="true" />
<link-entity name="phonecall" from="regardingobjectid" to="accountid" alias="ab" >
<filter type="and" >
<condition attribute="statecode" operator="eq" value="0" />
</filter>
</link-entity>
</entity>
</fetch>
第二个查询:迭代并传递第一个查询帐户结果集作为 <value>
,如下所示,以过滤掉它们。
<fetch version="1.0" output-format="xml-platform" mapping="logical" distinct="true" >
<entity name="account" >
<attribute name="name" />
<attribute name="primarycontactid" />
<attribute name="telephone1" />
<attribute name="accountid" />
<order attribute="name" descending="false" />
<filter type="and" >
<condition attribute="accountid" operator="not-in" >
<value><GUID of ACCOUNT1 with OPEN PHONECALL></value>
<value><GUID of ACCOUNT2 with OPEN PHONECALL></value>
<value><GUID of ACCOUNT3 with OPEN PHONECALL></value>
</condition>
</filter>
</entity>
</fetch>
我需要获取所有在 state
而非 open
中有电话呼叫的帐户,因此我创建了一个查询并获得了一些结果。
检查我的结果后,我发现我得到的所有帐户至少有 1 个未打开的电话,但我需要获得 所有 个已连接电话的帐户未打开(甚至不能有 1 个处于打开状态)是否可以通过获取来完成?
** NOT OPEN 是指已取消或已完成的状态。
这是我的提取查询:
@"<fetch version='1.0' output-format='xml-platform' mapping='logical' distinct='true'>
<entity name='account'>
<attribute name='name' />
<order attribute='accountamount' descending='true' />
<link-entity name='phonecall' from='regardingobjectid' to='accountid' alias='ab'>
<filter type='and'>
<condition attribute='statecode' operator='ne' value='0' />
</filter>
</link-entity>
</entity>
</fetch>";
您要查找的是不匹配查询。这可以在使用 fetchxml 的 2 个查询中实现。
第一个查询:您必须提取所有有未接电话的帐户。
<fetch version="1.0" output-format="xml-platform" mapping="logical" distinct="true" >
<entity name="account" >
<attribute name="accountid" />
<order attribute="accountamount" descending="true" />
<link-entity name="phonecall" from="regardingobjectid" to="accountid" alias="ab" >
<filter type="and" >
<condition attribute="statecode" operator="eq" value="0" />
</filter>
</link-entity>
</entity>
</fetch>
第二个查询:迭代并传递第一个查询帐户结果集作为 <value>
,如下所示,以过滤掉它们。
<fetch version="1.0" output-format="xml-platform" mapping="logical" distinct="true" >
<entity name="account" >
<attribute name="name" />
<attribute name="primarycontactid" />
<attribute name="telephone1" />
<attribute name="accountid" />
<order attribute="name" descending="false" />
<filter type="and" >
<condition attribute="accountid" operator="not-in" >
<value><GUID of ACCOUNT1 with OPEN PHONECALL></value>
<value><GUID of ACCOUNT2 with OPEN PHONECALL></value>
<value><GUID of ACCOUNT3 with OPEN PHONECALL></value>
</condition>
</filter>
</entity>
</fetch>