我的数据库连接是MySQL,通过JDBC,标准的innodb。 由此,我创建了一个非常简单的数据源,包含两个维度和一个度量。
这两个维度是:
该度量是相同的“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>
答案 0 :(得分:1)
创建一个正确的日期维度和层次结构,其中星期几作为表中的列,然后使用它。
见这里: