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

Petaho BA服务器中的MDX查询失败,mdx,pentaho,olap,mondrian,Mdx,Pentaho,Olap,Mondrian,我的数据库连接是MySQL通过JDBC,标准的innodb。 由此,我创建了一个非常简单的数据源,具有两个维度和一个度量 这两个方面是: 位置(字符串) ddate(日期/时间,至少在Mysql中) 度量值是相同的“位置”元素,设置为计数聚合 我试图通过地点、一周中的某一天(周一到周日或1-7天都可以)得到一个相当简单的物品计数 我尝试了以下几十种变体,包括提取星期几的“with member…as…”,但都失败了 SELECT NON EMPTY Hierarchize({ datepar

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

这两个方面是:

  • 位置(字符串)
  • ddate(日期/时间,至少在Mysql中)
度量值是相同的“位置”元素,设置为计数聚合

我试图通过地点、一周中的某一天(周一到周日或1-7天都可以)得到一个相当简单的物品计数

我尝试了以下几十种变体,包括提取星期几的“with member…as…”,但都失败了

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>

创建一个适当的日期维度和层次结构,将星期几作为表中的一列,然后使用它

请看这里:


是的,但问题与查询中的语法问题有关,并要求提供不涉及架构更改的临时解决方案。我理解正式日期维度的优点,但数据源多种多样,我无法为每个电子表格或csv文件中的所有日期字段创建带有日期维度的模式,因为用户可能有临时或一次性需求。这很公平。我没有在MDX中看到datepart-您在哪里看到它是一个有效的MDX函数?还发布了MDX错误-如果看不到这一点,就没有什么帮助了。