在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>