9

问题

我有一个 Fetch XML 查询,该查询对未按预期运行的链接实体进行聚合计数。基本上我会返回一个课程列表,并计算当前注册该课程的联系人数量,但即使没有人注册该课程,我也会计算 1 个注册联系人。如果我注册 1 个联系人,我的计数为 1。如果我注册 5 个联系人,我的计数为 5,所以问题似乎解决了在没有相关记录时无法获得 0 的计数.

这是获取 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>

有没有人遇到过这个问题并知道解决方法?

4

1 回答 1

12

在启用跟踪日志的情况下查看生成的 SQL 后发现了问题。必须将 count 更改为 countcolumn:

破碎的

<attribute name="new_contactcoursesectionid" aggregate="count" alias="coursecount" />

使固定

<attribute name="new_contactcoursesectionid" aggregate="countcolumn" alias="coursecount" />

虽然我认为在处理 FetchXML 中链接实体的聚合值时,CRM 2011 中存在错误。即使用别名标记,Attribute 集合中的 AliasedValue 也将使用实际的 CRM 名称,而不是别名,即使 AttributeCollection 的键将正确使用别名。奇怪的...

于 2012-08-28T18:14:06.513 回答