【问题标题】:Use date picker range as a filter in a MDX query在 MDX 查询中使用日期选择器范围作为过滤器
【发布时间】:2017-04-19 10:33:14
【问题描述】:

我针对演示销售多维数据集创建了一份报告。 它包括一个日期选择器,其中“选择时”事件被命名为日期窗口。
& 一个带有MDX 查询的数据透视表,类似于:

SELECT 
        [Time].[Calendar].[Day].[7 Jan 2005]
      : 
        [Time].[Calendar].[Day].[10 Jan 2005] ON 0
FROM [Sales];  

我想用日期选择器中的 from 和 to 替换查询中的固定日期。该怎么做?

【问题讨论】:

    标签: filter datepicker mdx iccube-reporting


    【解决方案1】:

    mdx 的许多方言中,如果您有一个名为@aDate 的参数,让我们假设它的当前值为7 Jan 2005,那么您可以通过strToMember 函数添加到mdx,如下所示:

    strToMember('[Time].[Calendar].[Day].[' + @aDate + ']')
    

    或者像这样的strToSet函数:

    strToSet('[Time].[Calendar].[Day].[' + @aDate + ']:[Time].[Calendar].[Day].[' + @aSECONDDate + ']')
    

    【讨论】:

      【解决方案2】:

      在 icCube 中,我宁愿使用 MDX 函数 LookupByKey 而不是 strToMember。除了更好的打字之外,编译器可以很容易地猜出在一些场景中很方便的层次结构。恕我直言,尽量不要使用 StrToMember。类似的东西:

       [Calendar].[Day].lookupByKey( StringToDate(@date,"d/M/yyyy") )
      

      要将字符串解析为日期,您可以使用一些函数(herehere)。

      我认为范围过滤器直接返回事件中的MDX范围表达式(如果不是这种情况直接联系我们)。

      【讨论】:

      • (upped)我嫉妒你提供的所有这些功能!希望 MS 在提供和实施 mdx 方面也很活跃(或者只是有点活跃!)
      【解决方案3】:

      如上所述,IcCube 日期选择器小部件为范围返回有效的 MDX 值。这里是 demo report 和描述的配置。

      有关详细信息,请查看日期选择器的设置和数据透视表的 mdx 设置。

      【讨论】:

      • 我需要登录该演示!
      • @whytheq 我修复了链接
      • 如果我更改日期选择器,mdx 没有任何反应
      • @whytheq (1) 更改底部输入 (2) 表格内容已更改 (3) 表示表格的实时 MDX 值 (4) 只是应该在表格配置中使用的静态值 storage6.static.itmages.com/i/17/0420/…
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多