【问题标题】:MDX query to sum measure of items containing dimension memberMDX 查询以汇总包含维度成员的项目的度量
【发布时间】:2017-04-24 16:52:26
【问题描述】:

这个 MDX 查询:

WITH
MEMBER [Measures].[# answered] AS
    ([Dispozice].[Dispozice].[ANSWERED], [Measures].[# hovorů])
SELECT
{[Measures].[# hovorů], [Measures].[# answered]} ON COLUMNS,
CrossJoin([Datum vytvoření.Po dnech].[Rok].[2017], [Dispozice].[Dispozice].Members) ON ROWS
FROM [Hovory]

返回此表:

但我需要这样的东西:

我只需要对那些具有维度DispoziceANSWERED 成员的项目求和测量# hovorů。我想将此添加为计算测量值,用于计算百分比。

非常感谢。

【问题讨论】:

  • 您是否尝试过:(现有的 [Dispozice].[Dispozice].[ANSWERED],[Measures].[# hovorů])?我不确定蒙德里安是否支持它。
  • @DanyloKorostil mondrian 中没有现有的关键字:( ...您有什么建议可以解决这个问题吗?
  • 我以为是支持的:jira.pentaho.com/browse/MONDRIAN-1180
  • 你能改变立方体结构吗?
  • 是的,我做到了。这是最简单的方法。还是谢谢你。

标签: mdx olap olap-cube mondrian rolap


【解决方案1】:

我猜只是使用带有null 分支的iif 是太多的硬编码:

WITH
MEMBER [Measures].[# answered] AS
    iif(
      [Dispozice].CURRENTMEMBER IS [Dispozice].[Dispozice].[ANSWERED]
    , [Measures].[# hovorů]
    , NULL
    )

【讨论】:

  • 是的,这是可能的,但是这样[Duspozice] 维度必须出现在查询中。 WITH MEMBER [Measures].[# 回答] AS iif([Dispozice].CURRENTMEMBER 是 [Dispozice].[Dispozice].[ANSWERED] , [Measures].[# hovorů] , NULL ) SELECT {[Measures].[# hovorů], [Measures].[# added]} ON COLUMNS, [Datum vytvoření.Po dnech].[Rok].Members ON ROWS FROM [Hovory] ​​将返回 NULL。
  • @JakubTruneček 是在蒙德里安方言中实现的 NonEmpty 吗?
  • IIF([Dispozice].CurrentMember is [Dispozice].[Dispozice].[All], ([Dispozice].[Dispozice].[ANSWERED],[Measures].[# hovorů]) ,NULL) 也可能是一种方法。我的意思是,用 case 语句重写它。但是,它太脏了,以后无法调试。因此,如果没有现有关键字,您必须在 DWH 上过滤答案。
猜你喜欢
  • 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
相关资源
最近更新 更多