schema文件中cube的事实表使用视图方法

在cube中可以使用查询结果或者视图来当做事实表,其中view的alias相当于表名,这个要和同一个cube中的level的表名对应,代码如下:

<Cube name="YHZXZLFX(NIAN)" caption="%{cube.name.YHZXZLFX(NIAN)}" visible="true" cache="false" enabled="true">
       <View alias="f_jcjy_yhzxqktjnian">
        <SQL dialect="mysql">
            <![CDATA[SELECT v1.id,v1.nian,v1.xb,v1.nl,v1.yhlx,v1.sssf,v1.sscs,v1.szq,v1.xxid,v1.zdlx,v1.zxyhsl,v1.hfzsl,v1.zdlcs,v1.zcsl FROM
(SELECT
t1.id,t1.nian,t1.`xb`,t1.nl,t1.yhlx,t1.sssf,t1.sscs,t1.szq,t1.xxid,t1.zdlx,t1.zxyhsl,t1.hfzsl,t1.zdlcs,t2.zcsl
FROM
f_jcjy_yhzxqktjnian AS t1
INNER JOIN f_jcjy_zcyhsl AS t2 ON t1.nian = t2.nian AND t1.`xb` = t2.`xb` AND t1.nl = t2.nl AND t1.yhlx = t2.yhlx AND t1.sssf = t2.sssf AND t1.sscs = t2.sscs AND t1.szq = t2.szq AND t1.xxid = t2.xxid
)AS v1
UNION
SELECT id,nian,xb,nl,yhlx,sssf,sscs,szq,xxid,zdlx,zxyhsl,hfzsl,zdlcs,zcsl FROM f_jcjy_yhzxqktjnian WHERE id NOT IN (SELECT
t1.id
FROM
f_jcjy_yhzxqktjnian AS t1
INNER JOIN f_jcjy_zcyhsl AS t2 ON t1.nian = t2.nian AND t1.`xb` = t2.`xb` AND t1.nl = t2.nl AND t1.yhlx = t2.yhlx AND t1.sssf = t2.sssf AND t1.sscs = t2.sscs AND t1.szq = t2.szq AND t1.xxid = t2.xxid
)]]>
        </SQL>
    </View>
    
    <Dimension type="TimeDimension" visible="true" foreignKey="id" highCardinality="false" name="SJ" caption="%{common.name.SJ}">
      <Hierarchy name="SJ" visible="true" hasAll="true" caption="%{common.name.SJ}">
        <Level name="NIAN" visible="true" table="f_jcjy_yhzxqktjnian" column="nian" type="String" uniqueMembers="false" levelType="TimeYears" hideMemberIf="Never" caption="%{level.name.NIAN}">
        </Level>
      </Hierarchy>
    </Dimension>
    <Dimension type="StandardDimension" visible="true" foreignKey="id" highCardinality="false" name="NL" caption="%{common.name.NL}">
      <Hierarchy name="NL" visible="true" hasAll="true" caption="%{common.name.NL}">
        <Level name="NL" visible="true" table="f_jcjy_yhzxqktjnian" column="nl" type="String" uniqueMembers="false" levelType="Regular" hideMemberIf="Never" caption="%{common.name.NL}">
        </Level>
      </Hierarchy>
    </Dimension>
    <DimensionUsage source="XB" name="XB" visible="true" foreignKey="xb" highCardinality="false">
    </DimensionUsage>
    <DimensionUsage source="XX" name="XX" visible="true" foreignKey="xxid" highCardinality="false">
    </DimensionUsage>
    <DimensionUsage source="YHLX" name="YHLX" visible="true" foreignKey="yhlx" highCardinality="false">
    </DimensionUsage>
    <DimensionUsage source="ZDLX" name="ZDLX" visible="true" foreignKey="zdlx" highCardinality="false">
    </DimensionUsage>
    <DimensionUsage source="SZDQ" name="SZDQ" visible="true" foreignKey="szq" highCardinality="false">
    </DimensionUsage>
    <Measure name="ZXYHSL" column="zxyhsl" datatype="Numeric" aggregator="sum" caption="%{measure.name.ZXYHSL}" visible="true">
    </Measure>
    <Measure name="ZDLCS" column="zdlcs" aggregator="sum" caption="%{measure.name.ZDLCS}" visible="false">
    </Measure>
    <Measure name="ZCSL" column="zcsl" aggregator="sum" caption="%{measure.name.ZCSL}" visible="true"> 
              
    </Measure>
    <Measure name="HFZSL" column="hfzsl" aggregator="sum" caption="%{measure.name.HFZSL}" visible="false">
    </Measure>
    <CalculatedMember name="SJYHDLL" formatString="0.00%" caption="%{calculatedMember.name.SJYHDLL}" dimension="Measures" visible="true">
      <Formula>
        <![CDATA[[Measures].ZXYHSL/[Measures].ZCSL]]>
      </Formula>
    </CalculatedMember>
    <CalculatedMember name="HFZBL" formatString="0.00%" caption="%{calculatedMember.name.HFZBL}" dimension="Measures" visible="true">
      <Formula>
        <![CDATA[[Measures].HFZSL/[Measures].ZXYHSL]]>
      </Formula>
    </CalculatedMember>
    <CalculatedMember name="YHCSZS" formatString="0.00%" caption="%{calculatedMember.name.YHCSZS}" dimension="Measures" visible="true">
      <Formula>
        <![CDATA[[Measures].ZDLCS/[Measures].ZXYHSL]]>
      </Formula>
    </CalculatedMember>
  </Cube>
原文地址:https://www.cnblogs.com/Jason-Xiang/p/4991715.html