MDX动态设置滤波器测量仪

MDX动态设置滤波器测量仪,mdx,Mdx,我是MDX新手。 我想在SSAS(SQL Server 2014)上创建一个动态集,该集过滤所有度量值 其中度量日期大于当前选定日期 对于动态集,这是否可行?如果不可能,还有哪些其他解决方案 ID|Date |MeasureVal 1 |15.01.2014| 100 2 |16.01.2014| 150 3 |20.02.2014| 500 4 |21.02.2014| 150 因此,当用户选择此集合且日期过滤器为2014年1月16日时,应显示日期大于

我是MDX新手。 我想在SSAS(SQL Server 2014)上创建一个动态集,该集过滤所有度量值 其中度量日期大于当前选定日期

对于动态集,这是否可行?如果不可能,还有哪些其他解决方案

   ID|Date      |MeasureVal
   1 |15.01.2014| 100
   2 |16.01.2014| 150
   3 |20.02.2014| 500
   4 |21.02.2014| 150
因此,当用户选择此集合且日期过滤器为2014年1月16日时,应显示日期大于2014年1月16日的退货措施。 从上面的示例中,它应该返回ID为3,4的度量值

这是我的尝试

CREATE DYNAMIC SET CURRENTCUBE.[MyTestSet]
 AS  
  Filter (
  [Production Time].[Time Hierarchy].[Date].AllMembers , 
  ( [Production Time].[Time Hierarchy].[Date].CurrentMember.member_caption > "Current selected Date?" )
   ;   
也许是这个

CREATE DYNAMIC SET CURRENTCUBE.[MyTestSet]
 AS     Filter(
          [Production Time].[Time Hierarchy].[Date].Members as dtSet,
          dtSet.Item(
            dtSet.CurrentOrdinal-1
          ).member_caption > "Current selected Date?"
        );
但是我不认为
成员\u caption
会返回一个数字,那么
将如何工作呢

通常,如果希望一组日期大于
mdx
中的指定成员,则使用范围运算符,该运算符是冒号
与冒号一侧的
null
耦合。这里有两个例子:

WITH 
SET [GreaterThanX] AS
  {
    [Production Time].[Time Hierarchy].[Date].[01 Jan 2014]
   :
    null
  }
SET [LessThanX] AS
  {
    null
   :
    [Production Time].[Time Hierarchy].[Date].[01 Jan 2014]
  }
SELECT
  {} ON 0,
  [GreaterThanX] ON 1
  //[LessThanX] ON 1
FROM myCube;
试试上面的方法-第一个应该给出1月1日之后的所有日期,而第二个应该给出1月1日之前的所有日期。
注意:使用
运算符时,指定的成员(在本例中为
[生产时间].[时间层次结构].[日期].[2014年1月1日]非常重要
存在于多维数据集中-如果不存在,则不会发生错误,但表达式的计算结果为
null:null
,即将返回所有日期。

请添加您尝试的mdx脚本您是否使用
SSAS
和任何第三方工具,如
Mondrian
?我使用的是SSAS,SQL Server 2014。没有第三方工具。作为前端,我们更喜欢Excel2010