国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

java - Mondrian的schema中,如何做到同一緯度的不同level數(shù)據(jù)作為查詢條件來用?

瀏覽:114日期:2024-01-17 09:34:10

問題描述

如下schema代碼片段:

<?xml version='1.0' encoding='UTF-8' ?><Schema name='報表'> <cube name='cube_qc_pass_item' caption='報表1' encoding='UTF-8'><table name='fact_qc_pass_record_item_join'><Dimension name='models' foreignKey='model_id' caption='模板'> <Hierarchy hasAll='true' allMemberName='model_name' primaryKey='id' primaryKeyTable='dim_qc_model'><Table name='dim_qc_model' /><Level name='model_name' column='name' caption='模板'/><Level name='model_id' column='id' caption='model_id'/> </Hierarchy></Dimension><Measure name='times' column='id' aggregator='count' formatString='#,###0' datatype='Numeric' caption='總量'/> </cube></Schema>

我想要在使用mdx查詢的時候,使用model_name顯示,使用model_id作為查詢條件限制某個model_id,該如何書寫mdx語句?

已經(jīng)有如下錯誤的mdx語句了mdx查詢語句1:

mdx語句

SELECTNON EMPTY {Hierarchize({{[Measures].[times], [Measures].[notPass], [Measures].[pass]}})} ON COLUMNS,NON EMPTY {Hierarchize([models].[model_name].Members)} ON ROWSFROM [cube_qc_pass_model] where [models].[model_id].[5cda6afa-f837-4603-af27-0915cfb812fd]

如下查詢報錯:

MondrianException: Mondrian Error:Hierarchy ’[models]’ appears in more than one independent axis.mdx查詢語句2:

mdx語句

SELECTNON EMPTY {Hierarchize({{[Measures].[times], [Measures].[notPass], [Measures].[pass]}})} ON COLUMNS,NON EMPTY Hierarchize(Union(CrossJoin([models].[model_name].Members, CrossJoin([times].[minute].Members, [agent_nos].[agent_no].Members)), CrossJoin([models].[model_id].[5cda6afa-f837-4603-af27-0915cfb812fd], CrossJoin([times].[minute].Members, [agent_nos].[agent_no].Members)))) ON ROWSFROM [cube_qc_pass_model]

結(jié)果: 無法進行查詢

問題解答

回答1:

其實根據(jù)MDX的語法,是不能將同一緯度的不同level放在多處地方的,如一個在rows中一個在columns中,或者一個在rows中或columns一個放在where子句中,就像提問中的第一個失敗的語句

交叉查詢的時候,由于使用了統(tǒng)一維度的不同level(更何況這里的兩個level其實是一一對應的),并且一個level進行篩選,一個level沒進行篩選,

回答2:一直沒有找到好的解決辦法,變向?qū)崿F(xiàn)了需求,來分享下:

首先改寫schema文件,將model_name和model_id拆分成兩個維度:

<?xml version='1.0' encoding='UTF-8' ?><Schema name='報表'> <cube name='cube_qc_pass_item' caption='報表' encoding='UTF-8'><table name='fact_qc_pass_record_item_join'><Dimension name='models' foreignKey='model_id' caption='模板'> <Hierarchy hasAll='true' allMemberName='model_name' primaryKey='id' primaryKeyTable='dim_qc_model'><Table name='dim_qc_model' /><Level name='model_name' column='name' caption='模板'/> </Hierarchy></Dimension><Dimension name='model_ids' foreignKey='model_id' caption='模板id'> <Hierarchy hasAll='true' allMemberName='model_id' primaryKey='id' primaryKeyTable='dim_qc_model'><Table name='dim_qc_model' /><Level name='model_id' column='id' caption='model_id'/> </Hierarchy></Dimension><Measure name='times' column='id' aggregator='count' formatString='#,###0' datatype='Numeric' caption='總量'/> </cube></Schema>

使用如下語句查詢,是可以查詢到數(shù)據(jù)的:

SELECTNON EMPTY {Hierarchize({{[Measures].[times], [Measures].[notPass], [Measures].[pass]}})} ON COLUMNS,NON EMPTY CrossJoin([models].[model_name].Members, CrossJoin([times].[minute].Members, [agent_nos].[agent_no].Members)) ON ROWSFROM [cube_qc_pass_model] where [model_ids].[model_id].[5cda6afa-f837-4603-af27-0915cfb812fd]

標簽: java
主站蜘蛛池模板: 久久精品免费 | 神马午夜不卡 | 欧美日韩国产高清一区二区三区 | 涩里番资源网站在线观看 | 老司机成人免费精品视频 | 亚州男人天堂 | 久久国产视频一区 | 国产亚洲欧美另类久久久 | 欧美一级特黄高清免费 | 欧美视频一区在线 | 国产成人午夜精品影院游乐网 | 久久一区二区三区免费播放 | 国产精品成人免费观看 | 久久久久免费视频 | 一级色黄 | 91久久精品国产一区二区 | 久久视频这里只精品3国产 久久视频这里只有精品 | 欧美一级毛片欧美一级无片 | 欧美a一级 | 国产成人爱片免费观看视频 | 久久久久久国产精品免费免 | 久热草在线 | 毛片在线不卡 | 久久国产美女免费观看精品 | 又黄又湿又爽吸乳视频 | 三级视频中文字幕 | 日韩一区三区 | 一本久道在线 | 午夜三级成人三级 | 日本欧美一级二级三级不卡 | 欧美怡红院在线观看 | 精品国产美女福到在线不卡f | 亚洲国产人成中文幕一级二级 | 亚洲第一成年网 | 欧美激情特级黄aa毛片 | 成人合成mv福利视频网站 | 怡红院在线观看在线视频 | 91福利国产在线观看香蕉 | 韩国三级 mp4 | 国产精品视频一区二区猎奇 | 欧美精品成人3d在线 |