我需要从MySQL中的一个表创建一个OLAP视图。
我需要从表格中的以下列中获取信息:日期,机器,级别,项目,代码,注释,停机时间。
所以我创建了这个Mondrian Schema:
<Schema name="ExampleSchema">
<Cube name="ExampleCube">
<Table name="example_table"/>
<Dimension name="Date">
<Hierarchy hasAll="true" allMemberName="All Date">
<Level name="Date" column="date" uniqueMembers="true"/>
</Hierarchy>
</Dimension>
<Dimension name="Machine">
<Hierarchy hasAll="true" allMemberName="All Machine">
<Level name="Machine" column="machine" uniqueMembers="true"/>
</Hierarchy>
</Dimension>
<Dimension name="Level">
<Hierarchy hasAll="true" allMemberName="All Level">
<Level name="Level" column="level" uniqueMembers="true"/>
</Hierarchy>
</Dimension>
<Dimension name="Item">
<Hierarchy hasAll="true" allMemberName="All Item">
<Level name="Item" column="item" uniqueMembers="true"/>
</Hierarchy>
</Dimension>
<Dimension name="Code">
<Hierarchy hasAll="true" allMemberName="All Code">
<Level name="Code" column="code" uniqueMembers="true"/>
</Hierarchy>
</Dimension>
<Dimension name="Comment">
<Hierarchy hasAll="true" allMemberName="All">
<Level name="Comment" column="comment" uniqueMembers="true"/>
</Hierarchy>
</Dimension>
<Measure name="Downtime" column="downtime" aggregator="sum" formatString="Standard" visible="true"/>
</Cube>
</Schema>
我的查询如下:
{[Item].[All Item]} * {[Measures].[Downtime]}
ON columns,
{[Code].[All Code]} * {[Comment].[All Comment]}
ON rows
from [ExampleCube]
WHERE
{([Date].[2011-11-31], [Machine].[1500], [Level].[AB])}
它有效,但我想要的措施不是针对单个日期,而是针对一段时间(从开始日期到结束日期)。
答案 0 :(得分:0)
尝试使用范围运算符:
{[Item].[All Item]} * {[Measures].[Downtime]}
ON columns,
{[Code].[All Code]} * {[Comment].[All Comment]}
ON rows
from [ExampleCube]
WHERE
(
{[Date].[2011-11-31]:[Date].[2015-06-25]}
, [Machine].[1500], [Level].[AB]
)
两个日期[Date].[2011-11-31]:[Date].[2015-06-25]
必须存在于您的多维数据集中。