首页 > 解决方案 > 在表格立方体模型的 MDX 查询中使用计算成员中的日期范围

问题描述

我有一个要求,我必须获取不同度量的值,每个度量都有自己的日期范围,以下查询有效并让我获得一年多的数据,

WITH  MEMBER [Measures].[Ex1] AS ([Measures].[Average Spending], [Date].[Year].&[2020])

MEMBER [Measures].[Ex2] AS ([Measures].[Average Time Spent], [Date].[Year].&[2019])

SELECT {[Customer].[Name].[Name]} ON 1, {[Measures].[Ex1],[Measures].[Ex2]} ON 0 FROM [Model];

但是当我尝试传递一个日期范围而不是年份时,我得到了一个错误,

WITH  MEMBER [Measures].[Ex1] AS ([Measures].[Average Spending], [Date].[Year].&[2020])

MEMBER [Measures].[Ex2] AS ([Measures].[Average Time Spent], [Date].[Date].[01-May-2020]:[Date].[Date].[31-May-2020])

SELECT {[Customer].[Name].[Name]} ON 1, {[Measures].[Ex1],[Measures].[Ex2]} ON 0 FROM [Model];

我收到以下错误,

执行查询...该函数需要一个字符串或数字表达式作为参数。使用了元组集表达式。运行完成

如何获取每个计算成员的日期范围的度量?

标签: ssasmdxssas-tabularmdx-query

解决方案


如果您不使用元组(即层次结构的单个成员的组合,如Measures 或Year),而是使用集合,那么您需要告诉MDX 如何处理集合元素以获得单个值。我假设以下内容将提供您想要的:

WITH
MEMBER [Measures].[Ex2] AS 
       Aggregate([Date].[Date].[01-May-2020]:[Date].[Date].[31-May-2020],
                 [Measures].[Average Time Spent]
                )
...

Aggregate您也可以使用Sum,Avg等代替在多维数据集计算脚本中。VarianceAggregate

另请参阅SSAS 文档中的聚合


推荐阅读