Petaho BA服务器中的MDX查询失败

时间:2013-12-19 07:02:52

标签: mdx pentaho olap mondrian

我的数据库连接是MySQL,通过JDBC,标准的innodb。 由此,我创建了一个非常简单的数据源,包含两个维度和一个度量。

这两个维度是:

  • location(string)
  • 日期(日期/时间,至少在Mysql中)

该度量是相同的“location”元素,设置为按计数汇总

我想按地点计算一个相当简单的项目数,按星期几(mon-sun或1-7就可以了)

我已经尝试了以下几十种变体,包括“使用成员......作为......”来提取星期几,所有这些都会失败。

SELECT
NON EMPTY Hierarchize({ datepart("d",cdate([diDate.hDate].[mDate]) }) ON COLUMNS,
NON EMPTY {Hierarchize({[diLocation.hLocation].[mLocation].Members})} ON ROWS
FROM [k_olap]

非常感谢任何帮助。几个小时以来我一直在反对这个问题。几个小时,似乎它应该是简单的&直接只需要日期的一部分,而无需在架构中构建完整时间维度,而Pentaho BA在Web服务器中不方便。

以下是Pentaho BA从MySQL数据源生成的XML模式:

<Schema name="k_olap">
  <Dimension name="diDate">
    <Hierarchy name="hDate" hasAll="true" primaryKey="ID">
      <Table name="post" schema="kn"/>
      <Level name="mDate" uniqueMembers="false" column="ddate">
      </Level>
    </Hierarchy>
  </Dimension>
  <Dimension name="diLocation">
    <Hierarchy name="hLocation" hasAll="true" primaryKey="ID">
      <Table name="post" schema="kn"/>
      <Level name="mLocation" uniqueMembers="false" column="location" type="String">
      </Level>
    </Hierarchy>
  </Dimension>
  <Cube name="k_olap">
    <Table name="post" schema="kn"/>
    <DimensionUsage name="diDate" source="diDate" foreignKey="ID"/>
    <DimensionUsage name="diLocation" source="diLocation" foreignKey="ID"/>
    <Measure name="mesLocation" column="location" aggregator="count" formatString="Standard"/>
  </Cube>
</Schema>

1 个答案:

答案 0 :(得分:1)

创建一个正确的日期维度和层次结构,其中星期几作为表中的列,然后使用它。

见这里:

http://type-exit.org/adventures-with-open-source-bi/2010/07/a-simple-date-dimension-for-mondrian-cubes/