crm使用FetchXml分组聚合查询

/* 创建者:菜刀居士的博客

* 创建日期:2014年07月09号

*/

namespace Net.CRM.FetchXml

{

using System;

using Microsoft.Xrm.Sdk;

using Microsoft.Xrm.Sdk.Query;

/// <summary>

/// 使用FetchXml聚合查询,分组依据

/// </summary>

public class FetchXmlExtension

{

/// <summary>

/// 分组聚合

/// sql: select count(*),ownerid from account group by ownerid

/// </summary>

public void Group(IOrganizationService service)

{

string fetchXml = @"<fetch distinct=‘false‘ mapping=‘logical‘ aggregate=‘true‘>

<entity name=‘account‘>

<attribute name=‘name‘ alias=‘name_count‘ aggregate=‘count‘ />

<attribute name=‘ownerid‘ alias=‘ownerid‘ groupby=‘true‘ />

</entity>

</fetch>";

EntityCollection ec = service.RetrieveMultiple(new FetchExpression(fetchXml));

if (ec != null && ec.Entities.Count > 0)

{

Entity en = ec.Entities[0];

//获取结果

decimal value = ((Money)((AliasedValue)en["name_count"]).Value).Value;

EntityReference ownerEr = (EntityReference)((AliasedValue)en["ownerid"]).Value;

}

}

/// <summary>

/// 分组聚合,按年分组

/// </summary>

public void GroupByYear(IOrganizationService service)

{

string fetchXml = @"<fetch distinct=‘false‘ mapping=‘logical‘ aggregate=‘true‘>

<entity name=‘account‘>

<attribute name=‘accountid‘ alias=‘account_count‘ aggregate=‘count‘/>

<attribute name=‘estimatedvalue‘ alias=‘estimatedvalue_sum‘ aggregate=‘sum‘/>

<attribute name=‘actualclosedate‘ groupby=‘true‘ dategrouping=‘year‘ alias=‘year‘ />

</entity>

</fetch>";

EntityCollection ec = service.RetrieveMultiple(new FetchExpression(fetchXml));

if (ec != null && ec.Entities.Count > 0)

{

Entity en = ec.Entities[0];

//获取结果

int value_year = (Int32)((AliasedValue)en["year"]).Value;

int value_count = (Int32)((AliasedValue)en["account_count"]).Value;

decimal value_sum = ((Money)((AliasedValue)en["estimatedvalue_sum"]).Value).Value;

}

}

/// <summary>

/// 分组聚合,按季度分组

/// </summary>

public void GroupByQuarter(IOrganizationService service)

{

string fetchXml = @"<fetch distinct=‘false‘ mapping=‘logical‘ aggregate=‘true‘>

<entity name=‘account‘>

<attribute name=‘accountid‘ alias=‘account_count‘ aggregate=‘count‘/>

<attribute name=‘estimatedvalue‘ alias=‘estimatedvalue_sum‘ aggregate=‘sum‘/>

<attribute name=‘actualclosedate‘ groupby=‘true‘ dategrouping=‘quarter‘ alias=‘quarter‘ />

</entity>

</fetch>";

EntityCollection ec = service.RetrieveMultiple(new FetchExpression(fetchXml));

if (ec != null && ec.Entities.Count > 0)

{

Entity en = ec.Entities[0];

//获取结果

int value_quarter = (Int32)((AliasedValue)en["quarter"]).Value;

int value_count = (Int32)((AliasedValue)en["account_count"]).Value;

decimal value_sum = ((Money)((AliasedValue)en["estimatedvalue_sum"]).Value).Value;

}

}

/// <summary>

/// 分组聚合,按月分组

/// </summary>

public void GroupByMonth(IOrganizationService service)

{

string fetchXml = @"<fetch distinct=‘false‘ mapping=‘logical‘ aggregate=‘true‘>

<entity name=‘account‘>

<attribute name=‘accountid‘ alias=‘account_count‘ aggregate=‘count‘/>

<attribute name=‘estimatedvalue‘ alias=‘estimatedvalue_sum‘ aggregate=‘sum‘/>

<attribute name=‘actualclosedate‘ groupby=‘true‘ dategrouping=‘month‘ alias=‘month‘ />

</entity>

</fetch>";

EntityCollection ec = service.RetrieveMultiple(new FetchExpression(fetchXml));

if (ec != null && ec.Entities.Count > 0)

{

Entity en = ec.Entities[0];

//获取结果

int value_month = (Int32)((AliasedValue)en["month"]).Value;

int value_count = (Int32)((AliasedValue)en["account_count"]).Value;

decimal value_sum = ((Money)((AliasedValue)en["estimatedvalue_sum"]).Value).Value;

}

}

/// <summary>

/// 分组聚合,按周分组

/// </summary>

public void GroupByWeek(IOrganizationService service)

{

string fetchXml = @"<fetch distinct=‘false‘ mapping=‘logical‘ aggregate=‘true‘>

<entity name=‘account‘>

<attribute name=‘accountid‘ alias=‘account_count‘ aggregate=‘count‘/>

<attribute name=‘estimatedvalue‘ alias=‘estimatedvalue_sum‘ aggregate=‘sum‘/>

<attribute name=‘actualclosedate‘ groupby=‘true‘ dategrouping=‘week‘ alias=‘week‘ />

</entity>

</fetch>";

EntityCollection ec = service.RetrieveMultiple(new FetchExpression(fetchXml));

if (ec != null && ec.Entities.Count > 0)

{

Entity en = ec.Entities[0];

//获取结果

int value_week = (Int32)((AliasedValue)en["week"]).Value;

int value_count = (Int32)((AliasedValue)en["account_count"]).Value;

decimal value_sum = ((Money)((AliasedValue)en["estimatedvalue_sum"]).Value).Value;

}

}

/// <summary>

/// 分组聚合,按日分组

/// </summary>

public void GroupByDay(IOrganizationService service)

{

string fetchXml = @"<fetch distinct=‘false‘ mapping=‘logical‘ aggregate=‘true‘>

<entity name=‘account‘>

<attribute name=‘accountid‘ alias=‘account_count‘ aggregate=‘count‘/>

<attribute name=‘estimatedvalue‘ alias=‘estimatedvalue_sum‘ aggregate=‘sum‘/>

<attribute name=‘actualclosedate‘ groupby=‘true‘ dategrouping=‘day‘ alias=‘day‘ />

</entity>

</fetch>";

EntityCollection ec = service.RetrieveMultiple(new FetchExpression(fetchXml));

if (ec != null && ec.Entities.Count > 0)

{

Entity en = ec.Entities[0];

//获取结果

int value_day = (Int32)((AliasedValue)en["day"]).Value;

int value_count = (Int32)((AliasedValue)en["account_count"]).Value;

decimal value_sum = ((Money)((AliasedValue)en["estimatedvalue_sum"]).Value).Value;

}

}

/// <summary>

/// 分组聚合,多个分组依据

/// </summary>

public void GroupByYearAndQuarter(IOrganizationService service)

{

string fetchXml = @"<fetch distinct=‘false‘ mapping=‘logical‘ aggregate=‘true‘>

<entity name=‘account‘>

<attribute name=‘accountid‘ alias=‘account_count‘ aggregate=‘count‘/>

<attribute name=‘estimatedvalue‘ alias=‘estimatedvalue_sum‘ aggregate=‘sum‘/>

<attribute name=‘actualclosedate‘ groupby=‘true‘ dategrouping=‘year‘ alias=‘year‘ />

<attribute name=‘actualclosedate‘ groupby=‘true‘ dategrouping=‘quarter‘ alias=‘quarter‘ />

</entity>

</fetch>";

EntityCollection ec = service.RetrieveMultiple(new FetchExpression(fetchXml));

if (ec != null && ec.Entities.Count > 0)

{

Entity en = ec.Entities[0];

//获取结果

int value_year = (Int32)((AliasedValue)en["year"]).Value;

int value_quarter = (Int32)((AliasedValue)en["quarter"]).Value;

int value_count = (Int32)((AliasedValue)en["account_count"]).Value;

decimal value_sum = ((Money)((AliasedValue)en["estimatedvalue_sum"]).Value).Value;

}

}

}

}

crm使用FetchXml分组聚合查询,布布扣,bubuko.com

时间: 2024-10-12 04:00:05

crm使用FetchXml分组聚合查询的相关文章

Elasticsearch分组聚合-查询每个A_logtype下有多少数据

Elasticsearch分组聚合 1.查询指定索引下每个A_logtype有多少数据 curl -XPOST 'localhost:19200/ylchou-0-2015-10-07/_search?pretty' -d ' { "size": 0, "aggs": { "group_by_state": { "terms": { "field": "A_logtype" } } }

Solr分组聚合查询之Facet

摘要: Solr的分组聚合是一个笼统的概念,目的就是把查询结果做分类,有多种方式可以做到很类似的结果.也正是由于它们的不同表现,可以适合于多种场景. 何为Facet Facet是一种手段,用来将搜索结果分类,它并不会修改查询结果信息,只是给分类后的结果加上了每一项的数量值.我们可以用facet来做导航栏,引导用户更精确地查找信息. 一般参数 参数 说明 facet 布尔值,设置为true,表示开启facet facet.query 指定查询语句 facet 布尔值,默认为空,只有设置为true,

mongodb 分组聚合查询

MongoDB,分组,聚合 使用聚合,db.集合名.aggregate- 而不是find 管道在Unix和Linux中一般用于将当前命令的输出结果作为下一个命令的参数.MongoDB的聚合管道将MongoDB文档在一个管道处理完毕后将结果传递给下一个管道处理.管道操作是可以重复的. 每一个操作符(集合)都会接受一连串的文档,对这些文档做一些类型转换,最后将转换后的文档作为结果传递给下一个操作符,对于最后一个操作符,是将结果返回给客户端 //分组(这里制定了分组字段 $+字段名)//这里可以理解为

C# LinQ 左联接加分组聚合查询

真是醉了,前段时间摸索半天今天一写又忘了,特此写下来备忘,望大婶指点 from a in Table1 join b in Table2 on a.Id equals b.Id2 into e from f in e.DefaultIfEmpty() group new { a.Id1, a.Name, f.id2 } by new { a.Id,//一表的ID a.Name,//一表的字段(Name) f.id2//二表的字段(type) } into c select new Sontype

浅析MySQL使用 GROUP BY 分组聚合与细分聚合

1. 聚合函数(Aggregate Function) MySQL(5.7 ) 官方文档中给出的聚合函数列表(图片)如下: 详情点击https://dev.mysql.com/doc/refman/5.7/en/group-by-functions.html . 除非另有说明,否则聚合函数都会忽略空值(NULL values). 2. 聚合函数的使用 聚合函数通常对 GROUP BY 语句进行分组后的每个分组起作用,即,如果在查询语句中不使用 GROUP BY 对结果集分组,则聚合函数就对结果集

solrcloud jsonfacet分组聚合 unique计数不准确

jsonfacet分组聚合查询 unique.hll函数问题: 对不同的值进行估算,并非准确的值, 优点:节省内存消耗,用分组算法对不同的值count进行估算 缺点:无法准确统计count(distinct key) 区别: unique给定字段的惟一值的数量.超过100个值,它不会产生精确的估计,惟一的facet函数是Solr最快速的实现来计算不同值的数量 hll通过超log-log算法的分布式基数估计 记录: json.facet={fz:{type:terms,field:khid,ref

crm使用FetchXml聚合查询

/* 创建者:菜刀居士的博客 * 创建日期:2014年07月08号 */ namespace Net.CRM.FetchXml { using System; using Microsoft.Xrm.Sdk; using Microsoft.Xrm.Sdk.Query; /// <summary> /// 使用FetchXml聚合查询 /// </summary> public class FetchXmlDemo { /* 特别提示:FetchXML 包括使您能够计算总和.平均值

Dynamics CRM 2015/2016 Web API:聚合查询

各位小伙伴们,今天是博主2016年发的第一篇文章,首先祝大家新年快乐,工资Double,哈哈.今天我们来看一个比较重要的Feature--使用Web API执行FetchXML查询!对的,各位,你们没有听错,使用Web API执行FetchXML查询.在过去我们做这样的事情可是要花九牛二虎之力哟,拼接大量的SOAP消息体而且还容易出错.现在好了,我们自己可以在URL里面加上我们想要执行的FetchXML即可,系统则会乖乖的把我们想要的数据返回回来,是不是很美好呢! 言归正传,Web API的数据

Django学习【第7篇】:Django之ORM跨表操作(聚合查询,分组查询,F和Q查询等)

django之跨表查询及添加记录 一:创建表 书籍模型: 书籍有书名和出版日期,一本书可能会有多个作者,一个作者也可以写多本书,所以作者和书籍的关系就是多对多的关联关系(many-to-many);     一本书只应该由一个出版商出版,所以出版商和书籍是一对多关联关系(one-to-many). 创建一对一的关系:OneToOne("要绑定关系的表名") 创建一对多的关系:ForeignKey("要绑定关系的表名") 创建多对多的关系:ManyToMany(&qu