mdx 转义字符 CDE Pentaho

mdx escape character CDE Pentaho

我看到了一些关于 MDX 转义字符的问题,但它们关注的是具有指定值的查询。我有一个动态 mdx,其值将由用户指定。这是 MDX:

    SELECT
    NON EMPTY {Hierarchize({[Measures].[INDICADOR]})} ON COLUMNS,
    NON EMPTY {Hierarchize({[NOW].[NOW].Members})} ON ROWS
    FROM [UNION_NOW]
    WHERE CrossJoin({[PARENT].[${parentParameter}]}

通配符基于我的选择器:

    SELECT
    NON EMPTY {Hierarchize({[NOW].[NOW].Members})} ON COLUMNS,
    NON EMPTY {Hierarchize({[PARENT].[PARENT].Members})} ON ROWS
    FROM [UNION_NOW]

在这种情况下如何应用 "escape value"?

最好的解决方法是使用 selection 组件的 PRE/POST 执行事件,具体取决于您使用的是哪个 CDE 组件。

类似情况

  • 我使用了 select 组件,该组件从 SQL 查询中获取数据
  • 基于用户selection,我使用查询组件的预执行事件生成一个where子句,并将该where子句设置在"simple parameter"组件
  • 最后在 MDX 查询中使用那个简单的参数加入动态 where 子句。

你也可以使用select组件的post执行生成一个动态的where子句并将其设置在参数中,然后在你的MDX/SQL查询中使用该参数

希望对您有所帮助。