我尝试使用OLAP连接创建简单的Mondrian架构,但我遇到了问题
我有两个Measures
。但是当我打电话给它时,它只会调用一个measures
。我是Mondrian和OLAP的新人
我的架构看起来像这样。
<Schema name="Test">
<Cube name="Report1" visible="true" cache="true" enabled="true">
<Table name="mstjobs" schema="public">
</Table>
<Dimension type="StandardDimension" visible="true" foreignKey="regionid" highCardinality="false" name="Reg">
<Hierarchy name="hiReg" visible="true" hasAll="true" allMemberName="All Region" primaryKey="code1">
<Table name="mstlov" schema="public" alias="">
</Table>
<Level name="Category" visible="true" table="mstlov" column="cat" type="String" uniqueMembers="false" levelType="Regular" hideMemberIf="Never">
</Level>
<Level name="ListRegion" visible="true" table="mstlov" column="desc1" type="String" uniqueMembers="false" levelType="Regular" hideMemberIf="Never">
</Level>
</Hierarchy>
</Dimension>
<Dimension type="StandardDimension" visible="true" foreignKey="titleid" highCardinality="false" name="Title">
<Hierarchy visible="true" hasAll="true" allMemberName="All Title" primaryKey="code1">
<Table name="mstlov" schema="public">
</Table>
<Level name="Category" visible="true" column="cat" type="String" uniqueMembers="false" levelType="Regular" hideMemberIf="Never">
</Level>
<Level name="Title" visible="true" column="desc1" type="String" uniqueMembers="false" levelType="Regular" hideMemberIf="Never">
</Level>
</Hierarchy>
</Dimension>
<Measure name="mtot" column="mantotal" datatype="Integer" aggregator="sum" visible="true">
</Measure>
<Measure name="wtot" column="womantotal" aggregator="sum" visible="true">
</Measure>
</Cube>
</Schema>`
我只是通过简单的MDX查询来调用它
Select
Reg.[All Region].region on COLUMNS,
Title.[ALl Title].titlekhas on ROWS
from Report1
输出看起来像这样,有mtot
个度量。
| |City1 |City2 |City3 |
| |20 |30 |30 |
|Job1 |10 |20 |10 |
|Job2 |10 |10 |20 |
但我想把所有措施放在一起。所以,输出应该是这样的。
| |City1 |City2 |City3 |
| |20 |10 |30 |20 |30 |25 |
|Job1 |10 |10 |20 |10 |10 |10 |
|Job2 |10 |0 |10 |10 |20 |15 |
我该怎么办?我应该更改架构吗?
答案 0 :(得分:0)
如果您没有指定度量,它将使用第一个作为默认值。
使用
Select
[Reg].[region] on COLUMNS,
[Title].[titlekhas] on ROWS
from Report1
where [Measures].[wtot]
代替。
或者,您也可以使用
Select
{[Reg].[region]} * {[Measures].[wtot]} on COLUMNS,
[Title].[titlekhas] on ROWS
from Report1
或
Select
[Reg].[region] * {[Measures].[wtot], [Measures].[mtot] } on COLUMNS,
[Title].[titlekhas] on ROWS
from Report1
显示两个指标。
说明:
- 即使不需要,在引用尺寸,水平或成员时也应始终使用括号;
- 您不需要在维度后添加所有成员名称,您可以直接跳到第一级成员;
- 我不建议对措施,级别或维度使用此类“编码”名称。 [Measures].[wtot]
比[Measures].[Women Total]
更难阅读。