我有一个Fetch XML查询,它对链接实体的聚合计数不符合预期。基本上我正在返回课程列表,并计算当前为该课程注册的联系人数,但即使没有人注册该课程,我也会得到1个已注册的联系人。如果我注册1个联系人,我得到1个计数。如果我注册了5个联系人,我得到5个计数,所以当没有相关记录时,问题似乎解决了无法得到0的计数
这是Fetch XML
<fetch version="1.0" output-format="xml-platform" mapping="logical" distinct="false" aggregate="true">
<entity name="new_coursesection">
<attribute name="new_termscheduleid" groupby="true" alias="new_termscheduleid" />
<attribute name="new_termid" groupby="true" alias="new_termid" />
<attribute name="new_sectionname" groupby="true" alias="new_sectionname" />
<attribute name="new_name" groupby="true" alias="new_name" />
<filter type="and">
<condition attribute="new_courseid" operator="eq" value="{some guid}" />
<condition attribute="statecode" operator="eq" value="0" />
</filter>
<link-entity name="new_contactcoursesection" from="new_coursesectionid" to="new_coursesectionid" alias="new_contactcoursesection1" link-type="outer">
<attribute name="new_contactcoursesectionid" aggregate="count" alias="coursecount" />
<filter>
<condition attribute="statecode" operator="eq" value="0"/>
</filter>
<order alias="coursecount" descending="true" />
</link-entity>
</entity>
</fetch>
是否有人遇到此问题并知道解决方法?
答案 0 :(得分:11)
在启用跟踪日志的情况下查看生成的SQL后,找出问题所在。不得不把计数改为countcolumn:
断
<attribute name="new_contactcoursesectionid" aggregate="count" alias="coursecount" />
修复
<attribute name="new_contactcoursesectionid" aggregate="countcolumn" alias="coursecount" />
虽然我认为在处理FetchXML中链接实体的聚合值时,CRM 2011中存在一个错误。即使它标有别名,Attribute集合中的AliasedValue也将使用实际的CRM名称,而不是别名,即使AttributeCollection的键将正确使用别名。奇怪的...