如何使用FetchXML查询中的datetime字段按日期分组

问题描述

我在Dynamics CRM中有一个实体,其属性如下所示(只是一小段):

Date (datetime type)     UserID (GUID type)                     Operation    Entity
2020-09-24 00:47:08.000  16742A71-ED5F-E611-80EA-005056B53B31   Delete       Account
2020-09-24 00:47:08.000  16742A71-ED5F-E611-80EA-005056B53B31   Create       Opportunity
2020-10-07 05:37:54.000  16742A71-ED5F-E611-80EA-005056B53B31   Update       Contact
2020-10-07 02:34:45.000  16742A71-ED5F-E611-80EA-005056B53B31   Update       Contact
2020-10-07 09:39:02.000  16742A71-ED5F-E611-80EA-005056B53B31   Update       Contact

我想要做的是获取日期(不在乎时间部分),用户ID,操作和实体的唯一组合。因此,根据上面截取的数据,由于FetchXML查询的结果,我想获得3条记录,因为最后3条记录是由同一确切用户在相同确切日期对相同确切实体和对象执行相同确切操作创建的前2名是唯一的。

Date (datetime type)     UserID (GUID type)                     Operation    Entity
2020-09-24               16742A71-ED5F-E611-80EA-005056B53B31   Delete       Account
2020-09-24               16742A71-ED5F-E611-80EA-005056B53B31   Create       Opportunity
2020-10-07               16742A71-ED5F-E611-80EA-005056B53B31   Update       Contact

这相当于GROUP BY cast(createdon as date)。完全可以在FetchXML中实现吗?

TIA, -托尼。

解决方法

是的,可以使用dategrouping

以下示例按年份分组,但是this article解释了其他选项,包括日期和月份。

<fetch distinct='false' mapping='logical' aggregate='true'> 
<entity name='opportunity'> 
   <attribute name='opportunityid' alias='opportunity_count' aggregate='count'/> 
   <attribute name='estimatedvalue' alias='estimatedvalue_sum' aggregate='sum'/> 
   <attribute name='estimatedvalue' alias='estimatedvalue_avg' aggregate='avg'/> 
   <attribute name='actualclosedate' groupby='true' dategrouping='year' alias='year' />
   <filter type='and'>
       <condition attribute='statecode' operator='eq' value='Won' />
   </filter>
</entity> 

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...