Mdx 如何在icCube的范围维度II中使用流程管理开始和结束日期
icCube可以处理范围广泛的维度,以解决用于流程管理的复杂建模解决方案。给出了订单日期和发货日期的示例。很好的例子,这几乎是适用的,但并不完全适用 我想显示最新阶段的更改。这些变化来自ITSM软件SAAS解决方案。简化后,变更将经过以下阶段:Mdx 如何在icCube的范围维度II中使用流程管理开始和结束日期,mdx,iccube,Mdx,Iccube,icCube可以处理范围广泛的维度,以解决用于流程管理的复杂建模解决方案。给出了订单日期和发货日期的示例。很好的例子,这几乎是适用的,但并不完全适用 我想显示最新阶段的更改。这些变化来自ITSM软件SAAS解决方案。简化后,变更将经过以下阶段: 授权 正在进行的工作 待审查 封闭的 每个阶段都有开始和结束日期。而且没有差距 现在,我想使用范围II维度的解决方案在图表中显示一个变更(或多个变更)的生命周期。但我得到以下图表: 我如何才能产生所需的结果。也就是说,只显示某个时间间隔内变化的最新
- 授权
- 正在进行的工作
- 待审查
- 封闭的
我如何才能产生所需的结果。也就是说,只显示某个时间间隔内变化的最新阶段?我找到了一个使用常规MDX的解决方案,方法如下所示。不幸的是,icCube提供的标准解决方案不支持我的问题中提到的“周期结束间隔”问题 我已经在封闭的icCube方案中重建了该问题,以供参考,可能其他人也会遇到类似的问题。在这个解决方案的末尾,我添加了icCube模式作为XML代码
- 第一,数据 (左:范围维度II的数据集-但不适用于阶段,右:提供所需结果的数据集)
- 结果不正确-基于左范围尺寸的MDX:
- 结果正确-MDX基于正确的数据集:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<schemaFactory revisionNumber="7">
<schemaDefinition name="Phases - ranged dimension II" description="issue description StackOverflow" group="StackOverflow" loadOnStartup="false">
<activateIncrementalLoad>false</activateIncrementalLoad>
<useUnknownMembersInFacts>false</useUnknownMembersInFacts>
<autoCleanUpTableColumns>false</autoCleanUpTableColumns>
<useFactPartitioning>false</useFactPartitioning>
<callGarbageCollector>NONE</callGarbageCollector>
<backup>NONE</backup>
<nonEmptyCachePolicy>NONE</nonEmptyCachePolicy>
<nonEmptyCacheType>REGULAR</nonEmptyCacheType>
<nonEmptyCachePersistency>MEMORY</nonEmptyCachePersistency>
<storagePolicy>DEFAULT</storagePolicy>
<hierarchyUniqueNameStyle>IncludeDimensionName</hierarchyUniqueNameStyle>
<inMemoryDS name="manual">
<memoryDataTable tableName="facts" rowLimit="-1" id="c41cc2b5-1412-4da1-8e0e-3bd1b07e9d66">
<column name="start" tableType="STRING" type="DATE" selected="true" primaryKey="false" nullObjectAsString=""/>
<column name="end" tableType="STRING" type="DATE" selected="true" primaryKey="false" nullObjectAsString=""/>
<column name="phase" tableType="STRING" type="STRING" selected="true" primaryKey="false" nullObjectAsString=""/>
<column name="chg" tableType="STRING" type="STRING" selected="true" primaryKey="false" nullObjectAsString=""/>
<column name="#changes" tableType="STRING" type="INTEGER" selected="true" primaryKey="false" nullObjectAsString=""/>
<addRowNumber>false</addRowNumber>
<stringDateConverter>d MMM, yyyy</stringDateConverter>
<stringDateConverterLocale>en</stringDateConverterLocale>
<trimStrings>true</trimStrings>
<columnSeparator>;</columnSeparator>
<commentMarker>#</commentMarker>
<dataAsString>start;end;phase;chg;#changes
1 January, 2018;1 February, 2018; a;chg001;1
1 February, 2018;5 March, 2018;b;chg001;1
5 March, 2018;20 March, 2018;c;chg001;1
20 March, 2018;20 March, 2018;d;chg001;1
20 March, 2018;3 June, 2018;e;chg001;1
</dataAsString>
</memoryDataTable>
<memoryDataTable tableName="phases" rowLimit="-1" id="b24aaebb-7ce3-42a9-bab0-a54bc4c4b896">
<column name="phase" tableType="STRING" type="STRING" selected="true" primaryKey="false" nullObjectAsString=""/>
<addRowNumber>false</addRowNumber>
<stringDateConverter></stringDateConverter>
<trimStrings>true</trimStrings>
<columnSeparator>,</columnSeparator>
<commentMarker>#</commentMarker>
<dataAsString>phase
a
b
c
d
e
</dataAsString>
</memoryDataTable>
<memoryDataTable tableName="changes" rowLimit="-1" id="8ba9aaca-0d93-49b1-851f-4f325e05bbbe">
<column name="chg" tableType="STRING" type="STRING" selected="true" primaryKey="false" nullObjectAsString=""/>
<addRowNumber>false</addRowNumber>
<stringDateConverter></stringDateConverter>
<trimStrings>true</trimStrings>
<columnSeparator>;</columnSeparator>
<commentMarker>#</commentMarker>
<dataAsString>chg
chg001
chg002
chg003</dataAsString>
</memoryDataTable>
<memoryDataTable tableName="facts - delta" rowLimit="-1" id="aea29582-84e2-4ef4-a169-5d9549141ba6">
<column name="date" tableType="STRING" type="DATE" selected="true" primaryKey="false" nullObjectAsString=""/>
<column name="phase" tableType="STRING" type="STRING" selected="true" primaryKey="false" nullObjectAsString=""/>
<column name="chg" tableType="STRING" type="STRING" selected="true" primaryKey="false" nullObjectAsString=""/>
<column name="delta" tableType="STRING" type="INTEGER" selected="true" primaryKey="false" nullObjectAsString=""/>
<addRowNumber>false</addRowNumber>
<stringDateConverter>d MMM, yyyy</stringDateConverter>
<stringDateConverterLocale>en</stringDateConverterLocale>
<trimStrings>true</trimStrings>
<columnSeparator>;</columnSeparator>
<commentMarker>#</commentMarker>
<dataAsString>date;phase;chg;delta
1 January, 2018;a;chg001;1
1 February, 2018;b;chg001;1
5 March, 2018;c;chg001;1
20 March, 2018;d;chg001;1
20 March, 2018;e;chg001;1
1 February, 2018;a;chg001; -1
5 March, 2018;b;chg001;-1
20 March, 2018;c;chg001;-1
20 March, 2018;d;chg001;-1
13 June, 2018;e;chg001;-1
</dataAsString>
</memoryDataTable>
</inMemoryDS>
<multiLevelDimension dataTableId="8ba9aaca-0d93-49b1-851f-4f325e05bbbe" isTimeDimension="false" isDefaultTimeDimension="false" isIndexingByRange="false" id="0c4cf980-73d9-4c42-ae47-a300421c29a2" name="Change">
<multiLevelHierarchy hasAllLevel="true" allLevelName="All-Level" allMemberName="All" name="Change" isDefault="true">
<level name="change" nameUnique="false" nameUniqueInParent="false" keyUnique="false" ignoreNameCollision="false">
<nameCol name="chg"/>
<orderType>BY_NAME</orderType>
<orderKind>ASC</orderKind>
</level>
</multiLevelHierarchy>
</multiLevelDimension>
<multiLevelDimension dataTableId="b24aaebb-7ce3-42a9-bab0-a54bc4c4b896" isTimeDimension="false" isDefaultTimeDimension="false" isIndexingByRange="false" id="ed48052e-2c11-48a8-9407-c4854b163cb6" name="Phase">
<multiLevelHierarchy hasAllLevel="true" allLevelName="All-Level" allMemberName="All" name="Phase" isDefault="true">
<level name="phase" nameUnique="false" nameUniqueInParent="false" keyUnique="false" ignoreNameCollision="false">
<nameCol name="phase"/>
<orderType>BY_NAME</orderType>
<orderKind>ASC</orderKind>
</level>
</multiLevelHierarchy>
</multiLevelDimension>
<timeWizardDimension isDefaultTimeDimension="false" isIndexingByRange="true" from="2018-06-01T00:00:00.000" to="2018-07-31T00:00:00.000" dataTableId="c41cc2b5-1412-4da1-8e0e-3bd1b07e9d66" unknownMemberName="" id="b545bf65-ec47-4267-a4f1-a8df35096bc4" name="Time">
<timeHierarchy hasAllLevel="true" allLevelName="All-L" allMemberName="All-M" name="Time" isDefault="true" defaultMemberName="">
<factAggregationType>MEMBER_AND_ANCESTORS</factAggregationType>
<level name="Year" type="YEAR">
<useRelativeKey>false</useRelativeKey>
</level>
<level name="Month" type="MONTH" nameFormat="">
<useRelativeKey>false</useRelativeKey>
</level>
<level name="Day" type="DAY" nameFormat="">
<useRelativeKey>false</useRelativeKey>
</level>
</timeHierarchy>
<timeWizardColumn name="start"/>
</timeWizardDimension>
<cube id="b9aceb66-c3dc-4d20-9f74-1ada8769cf75" name="Changes" description="">
<defaultFacts measureGroupName="Facts" partitioningLevelName="" partitioningType="NONE" newGeneration="true" dataTableId="c41cc2b5-1412-4da1-8e0e-3bd1b07e9d66" aggregateDataSourceFacts="false" unresolvedRowsBehavior="ERROR">
<rowFactAggregationType>ADD_ROW</rowFactAggregationType>
<measure name="# changes" aggregationType="SUM">
<rollupHierarchy></rollupHierarchy>
<dataColumn name="#changes"/>
<cellProperties></cellProperties>
<emptyIsZero>false</emptyIsZero>
</measure>
<measure name="# changes close" aggregationType="CLOSE">
<rollupHierarchy>[Phase].[Phase]</rollupHierarchy>
<dataColumn name="#changes"/>
<cellProperties></cellProperties>
<emptyIsZero>false</emptyIsZero>
</measure>
<links dimensionId="0c4cf980-73d9-4c42-ae47-a300421c29a2">
<viewLinks type="LAST_LEVEL">
<toColumns name="chg"/>
</viewLinks>
</links>
<links dimensionId="ed48052e-2c11-48a8-9407-c4854b163cb6">
<viewLinks type="LAST_LEVEL">
<toColumns name="phase"/>
</viewLinks>
</links>
<links dimensionId="b545bf65-ec47-4267-a4f1-a8df35096bc4">
<viewLinks type="RANGE_FROM_TO">
<toColumns name="start"/>
<toColumns name="end"/>
</viewLinks>
</links>
</defaultFacts>
<defaultFacts measureGroupName="Facts - delta" partitioningLevelName="" partitioningType="NONE" newGeneration="true" dataTableId="aea29582-84e2-4ef4-a169-5d9549141ba6" aggregateDataSourceFacts="false" unresolvedRowsBehavior="ERROR">
<rowFactAggregationType>ADD_ROW</rowFactAggregationType>
<measure name="# changes (based on delta)" aggregationType="SUM">
<rollupHierarchy></rollupHierarchy>
<dataColumn name="delta"/>
<cellProperties></cellProperties>
<emptyIsZero>false</emptyIsZero>
</measure>
<links dimensionId="0c4cf980-73d9-4c42-ae47-a300421c29a2">
<viewLinks type="LAST_LEVEL">
<toColumns name="chg"/>
</viewLinks>
</links>
<links dimensionId="ed48052e-2c11-48a8-9407-c4854b163cb6">
<viewLinks type="LAST_LEVEL">
<toColumns name="phase"/>
</viewLinks>
</links>
<links dimensionId="b545bf65-ec47-4267-a4f1-a8df35096bc4">
<viewLinks type="LAST_LEVEL">
<toColumns name="date"/>
</viewLinks>
</links>
</defaultFacts>
</cube>
<localization enabled="false"/>
<script>
<content>--
-- Automatically migrated from an old XML file definition format (v2.0.4 or before)
--
--
-- Drop all calc. members, sets and functions declared at schema/cube levels
--
DROP *
--
-- Functions
--
--
-- Sets
--
--
-- Calculated Measures/Members
--
</content>
</script>
</schemaDefinition>
</schemaFactory>
假的
假的
假的
假的
没有一个
没有一个
没有一个
有规律的
记忆
违约
IncludeDimensionName
假的
年月日
EN
真的
;
#
开始结束;阶段;chg#变化
2018年1月1日;2018年2月1日;A.chg001;1.
2018年2月1日;2018年3月5日;Bchg001;1.
2018年3月5日;2018年3月20日;Cchg001;1.
2018年3月20日;2018年3月20日;Dchg001;1.
2018年3月20日;2018年6月3日;Echg001;1.
假的
真的
,
#
阶段
A.
B
C
D
E
假的
真的
;
#
chg
chg001
chg002
chg003
假的
年月日
EN
真的
;
#
日期;阶段;chg;三角洲
2018年1月1日;A.chg001;1.
2018年2月1日;Bchg001;1.
2018年3月5日;Cchg001;1.
2018年3月20日;Dchg001;1.
2018年3月20日;Echg001;1.
2018年2月1日;A.chg001-1.
2018年3月5日;Bchg001-1.
2018年3月20日;Cchg001-1.
2018年3月20日;Dchg001-1.
2018年6月13日;Echg001-1.
名字
ASC
名字
ASC
成员和祖先
假的
假的
假的
添加行
假的
[阶段][阶段]
假的
添加行
假的
--
--从旧的XML文件定义格式(v2.0.4或更早版本)自动迁移
--
--
--删除在架构/多维数据集级别声明的所有计算成员、集合和函数
--
下降*
--
--功能
--
--
--设置
--
--
--计算的措施/成员
--
两种解决方案都有效
1) 对于范围解决方案,您需要添加一个在时间维度上使用模式的度量值,因为我们需要任何时间段最后一天的“状态”。此外,在使用范围时,这两个日期都包括在内,因此结束日期应该是下一个存储桶开始前一天
哟
CREATE MEMBER [#changes ITD 2] as Eval( compactSet(NULL:[Time].[Time].currentMember) , ([Time].[Time].defaultMember,[Measures].[# changes (based on delta)]) )
CREATE MEMBER [#changes ITD] as Aggregate( compactSet(NULL:[Time].[Time].currentMember) , [Measures].[# changes (based on delta)] )
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<schemaFactory revisionNumber="11">
<schemaDefinition name="Phases - ranged dimension II" description="issue description StackOverflow" group="StackOverflow" loadOnStartup="false">
<activateIncrementalLoad>false</activateIncrementalLoad>
<useUnknownMembersInFacts>false</useUnknownMembersInFacts>
<autoCleanUpTableColumns>false</autoCleanUpTableColumns>
<useFactPartitioning>false</useFactPartitioning>
<callGarbageCollector>NONE</callGarbageCollector>
<backup>NONE</backup>
<nonEmptyCachePolicy>NONE</nonEmptyCachePolicy>
<nonEmptyCacheType>REGULAR</nonEmptyCacheType>
<nonEmptyCachePersistency>MEMORY</nonEmptyCachePersistency>
<storagePolicy>DEFAULT</storagePolicy>
<hierarchyUniqueNameStyle>IncludeDimensionName</hierarchyUniqueNameStyle>
<inMemoryDS name="manual">
<memoryDataTable tableName="facts" rowLimit="-1" id="c41cc2b5-1412-4da1-8e0e-3bd1b07e9d66">
<column name="start" tableType="STRING" type="DATE" selected="true" primaryKey="false" nullObjectAsString=""/>
<column name="end" tableType="STRING" type="DATE" selected="true" primaryKey="false" nullObjectAsString=""/>
<column name="phase" tableType="STRING" type="STRING" selected="true" primaryKey="false" nullObjectAsString=""/>
<column name="chg" tableType="STRING" type="STRING" selected="true" primaryKey="false" nullObjectAsString=""/>
<column name="#changes" tableType="STRING" type="INTEGER" selected="true" primaryKey="false" nullObjectAsString=""/>
<addRowNumber>false</addRowNumber>
<stringDateConverter>d MMM, yyyy</stringDateConverter>
<stringDateConverterLocale>en</stringDateConverterLocale>
<trimStrings>true</trimStrings>
<columnSeparator>;</columnSeparator>
<commentMarker>#</commentMarker>
<dataAsString>start;end;phase;chg;#changes
1 January, 2018;31 January, 2018; a;chg001;1
1 February, 2018;4 March, 2018;b;chg001;1
5 March, 2018;19 March, 2018;c;chg001;1
20 March, 2018;19 March, 2018;d;chg001;1
20 March, 2018;2 June, 2018;e;chg001;1
</dataAsString>
</memoryDataTable>
<memoryDataTable tableName="phases" rowLimit="-1" id="b24aaebb-7ce3-42a9-bab0-a54bc4c4b896">
<column name="phase" tableType="STRING" type="STRING" selected="true" primaryKey="false" nullObjectAsString=""/>
<addRowNumber>false</addRowNumber>
<stringDateConverter></stringDateConverter>
<trimStrings>true</trimStrings>
<columnSeparator>,</columnSeparator>
<commentMarker>#</commentMarker>
<dataAsString>phase
a
b
c
d
e
</dataAsString>
</memoryDataTable>
<memoryDataTable tableName="changes" rowLimit="-1" id="8ba9aaca-0d93-49b1-851f-4f325e05bbbe">
<column name="chg" tableType="STRING" type="STRING" selected="true" primaryKey="false" nullObjectAsString=""/>
<addRowNumber>false</addRowNumber>
<stringDateConverter></stringDateConverter>
<trimStrings>true</trimStrings>
<columnSeparator>;</columnSeparator>
<commentMarker>#</commentMarker>
<dataAsString>chg
chg001
chg002
chg003</dataAsString>
</memoryDataTable>
<memoryDataTable tableName="facts - delta" rowLimit="-1" id="aea29582-84e2-4ef4-a169-5d9549141ba6">
<column name="date" tableType="STRING" type="DATE" selected="true" primaryKey="false" nullObjectAsString=""/>
<column name="phase" tableType="STRING" type="STRING" selected="true" primaryKey="false" nullObjectAsString=""/>
<column name="chg" tableType="STRING" type="STRING" selected="true" primaryKey="false" nullObjectAsString=""/>
<column name="delta" tableType="STRING" type="INTEGER" selected="true" primaryKey="false" nullObjectAsString=""/>
<addRowNumber>false</addRowNumber>
<stringDateConverter>d MMM, yyyy</stringDateConverter>
<stringDateConverterLocale>en</stringDateConverterLocale>
<trimStrings>true</trimStrings>
<columnSeparator>;</columnSeparator>
<commentMarker>#</commentMarker>
<dataAsString>date;phase;chg;delta
1 January, 2018;a;chg001;1
1 February, 2018;b;chg001;1
5 March, 2018;c;chg001;1
20 March, 2018;d;chg001;1
20 March, 2018;e;chg001;1
1 February, 2018;a;chg001; -1
5 March, 2018;b;chg001;-1
20 March, 2018;c;chg001;-1
20 March, 2018;d;chg001;-1
13 June, 2018;e;chg001;-1
</dataAsString>
</memoryDataTable>
</inMemoryDS>
<multiLevelDimension dataTableId="8ba9aaca-0d93-49b1-851f-4f325e05bbbe" isTimeDimension="false" isDefaultTimeDimension="false" isIndexingByRange="false" id="0c4cf980-73d9-4c42-ae47-a300421c29a2" name="Change">
<multiLevelHierarchy hasAllLevel="true" allLevelName="All-Level" allMemberName="All" name="Change" isDefault="true">
<level name="change" nameUnique="false" nameUniqueInParent="false" keyUnique="false" ignoreNameCollision="false">
<nameCol name="chg"/>
<orderType>BY_NAME</orderType>
<orderKind>ASC</orderKind>
</level>
</multiLevelHierarchy>
</multiLevelDimension>
<multiLevelDimension dataTableId="b24aaebb-7ce3-42a9-bab0-a54bc4c4b896" isTimeDimension="false" isDefaultTimeDimension="false" isIndexingByRange="false" id="ed48052e-2c11-48a8-9407-c4854b163cb6" name="Phase">
<multiLevelHierarchy hasAllLevel="true" allLevelName="All-Level" allMemberName="All" name="Phase" isDefault="true">
<level name="phase" nameUnique="false" nameUniqueInParent="false" keyUnique="false" ignoreNameCollision="false">
<nameCol name="phase"/>
<orderType>BY_NAME</orderType>
<orderKind>ASC</orderKind>
</level>
</multiLevelHierarchy>
</multiLevelDimension>
<timeWizardDimension isDefaultTimeDimension="false" isIndexingByRange="true" from="2018-06-01T00:00:00.000" to="2018-07-31T00:00:00.000" dataTableId="c41cc2b5-1412-4da1-8e0e-3bd1b07e9d66" unknownMemberName="" id="b545bf65-ec47-4267-a4f1-a8df35096bc4" name="Time">
<timeHierarchy hasAllLevel="true" allLevelName="All-L" allMemberName="All-M" name="Time" isDefault="true" defaultMemberName="">
<factAggregationType>MEMBER_AND_ANCESTORS</factAggregationType>
<level name="Year" type="YEAR">
<useRelativeKey>false</useRelativeKey>
</level>
<level name="Month" type="MONTH" nameFormat="">
<useRelativeKey>false</useRelativeKey>
</level>
<level name="Day" type="DAY" nameFormat="">
<useRelativeKey>false</useRelativeKey>
</level>
</timeHierarchy>
<timeWizardColumn name="start"/>
</timeWizardDimension>
<cube id="b9aceb66-c3dc-4d20-9f74-1ada8769cf75" name="Changes" description="">
<defaultFacts measureGroupName="Facts" partitioningLevelName="" partitioningType="NONE" newGeneration="true" dataTableId="c41cc2b5-1412-4da1-8e0e-3bd1b07e9d66" aggregateDataSourceFacts="false" unresolvedRowsBehavior="ERROR">
<rowFactAggregationType>ADD_ROW</rowFactAggregationType>
<measure name="# changes" aggregationType="SUM">
<rollupHierarchy></rollupHierarchy>
<dataColumn name="#changes"/>
<cellProperties></cellProperties>
<emptyIsZero>false</emptyIsZero>
</measure>
<measure name="# changes close" aggregationType="CLOSE">
<rollupHierarchy>[Time].[Time]</rollupHierarchy>
<dataColumn name="#changes"/>
<cellProperties></cellProperties>
<emptyIsZero>false</emptyIsZero>
</measure>
<links dimensionId="0c4cf980-73d9-4c42-ae47-a300421c29a2">
<viewLinks type="LAST_LEVEL">
<toColumns name="chg"/>
</viewLinks>
</links>
<links dimensionId="ed48052e-2c11-48a8-9407-c4854b163cb6">
<viewLinks type="LAST_LEVEL">
<toColumns name="phase"/>
</viewLinks>
</links>
<links dimensionId="b545bf65-ec47-4267-a4f1-a8df35096bc4">
<viewLinks type="RANGE_FROM_TO">
<toColumns name="start"/>
<toColumns name="end"/>
</viewLinks>
</links>
</defaultFacts>
<defaultFacts measureGroupName="Facts - delta" partitioningLevelName="" partitioningType="NONE" newGeneration="true" dataTableId="aea29582-84e2-4ef4-a169-5d9549141ba6" aggregateDataSourceFacts="false" unresolvedRowsBehavior="ERROR">
<rowFactAggregationType>ADD_ROW</rowFactAggregationType>
<measure name="# changes (based on delta)" aggregationType="SUM">
<rollupHierarchy></rollupHierarchy>
<dataColumn name="delta"/>
<cellProperties></cellProperties>
<emptyIsZero>false</emptyIsZero>
</measure>
<links dimensionId="0c4cf980-73d9-4c42-ae47-a300421c29a2">
<viewLinks type="LAST_LEVEL">
<toColumns name="chg"/>
</viewLinks>
</links>
<links dimensionId="ed48052e-2c11-48a8-9407-c4854b163cb6">
<viewLinks type="LAST_LEVEL">
<toColumns name="phase"/>
</viewLinks>
</links>
<links dimensionId="b545bf65-ec47-4267-a4f1-a8df35096bc4">
<viewLinks type="LAST_LEVEL">
<toColumns name="date"/>
</viewLinks>
</links>
</defaultFacts>
</cube>
<localization enabled="false"/>
<script>
<content>--
-- Automatically migrated from an old XML file definition format (v2.0.4 or before)
--
--
-- Drop all calc. members, sets and functions declared at schema/cube levels
--
DROP *
--
-- Functions
--
--
-- Sets
--
--
-- Calculated Measures/Members
--
CREATE MEMBER [#changes ITD] as Aggregate( compactSet(NULL:[Time].[Time].currentMember) , [Measures].[# changes (based on delta)] )</content>
</script>
</schemaDefinition>
</schemaFactory>