キーワード:
フィルタ
前月
年
ボリューム上
ドリル
MDXクエリコンテキストと実行
フィルタ:返す指定されたセットはスクリーニング基準に従って設定してください。
これは、コンテキスト依存!!!
语法:フィルタ(SET_EXPRESSION、論理式)
String mdxStr_140 ="select non empty{[Account].Children} on columns,{Filter({[Time].[2017].[4].[11],[Time].[2017].[4].[12]},[Measures].[金额]>10000)} on rows " +
"from [Col_trade_detail] ";
//错误?
String mdxStr_142 ="select non empty{[Account].Children} on columns,{Filter([Time].[Year].Members,[Measures].[金额]>10000)} on rows " +
"from [Col_trade_detail] ";
結果:
msdStr_142文が間違っていないですが、いくつかの年の自由値:ことに注意してください!すべては、総括する後者の必要性をコンピューティングに関わるNULL値を除外していませんでした。
次のように関連する比較文は次のとおりです。
String mdxStr_144="SELECT Filter({[Account].[Level1projectname].Members},[Measures].[金额]>10000000)on axis(0) FROM [Col_trade_detail] where ([Time].[2017],[Measures].[金额])";
//----去掉条件 啥也查不出来,原因是默认的维度成员有空值引起的?
String mdxStr_145="SELECT Filter({[Account].[Level1projectname].Members},1)on axis(0) FROM [Col_trade_detail] ";
String mdxStr_146="SELECT Filter({[Account].[Level1projectname].Members},1)on axis(0) FROM [Col_trade_detail] where ([Measures].[金额])";
//下面的语句 如果把[Time].[2017] 换成[Time].[2005],则什么也没有
String mdxStr_146_1="SELECT Filter({[Account].[Level1projectname].Members},[Measures].[金额]>10000000)on axis(0) FROM [Col_trade_detail] where ([Time].[2017],[Measures].[金额])";
String mdxStr_147="SELECT Filter([Account].[Level1projectname].Members,[Measures].[金额]>10000000)on axis(0) FROM [Col_trade_detail] where ([Time].[2005])";
コンテンツの背後にあります:
前月:
String mdxStr_151="with member [Measures].[环比] as "+
"'[Measures].[金额]/([Measures].[金额],[Time].CurrentMember.PrevMember)-1', FORMAT_STRING=\"0%\""+
" select {[Measures].[金额],[Measures].[环比]} on axis(0),{[Time].[2017].Children} on rows from [Col_trade_detail] "+
" where [Account].[Account_L].[行政事业性收费收入].[公安行政事业性收费收入]";
//这里我想求全部年度的的季度及月份的环比? 首先查2017年第4季度前面30个季度的同比情况
String mdxStr_152="with member [Measures].[环比] as "+
"'[Measures].[金额]/([Measures].[金额],[Time].CurrentMember.PrevMember)-1', FORMAT_STRING=\"0%\""+
" select {[Measures].[金额],[Measures].[环比]} on axis(0),{[Time].[2011].[4]:[Time].[2017].[4]} on rows from [Col_trade_detail] "+
" where [Account].[Account_L].[行政事业性收费收入].[公安行政事业性收费收入]";
String mdxStr_153="with member [Measures].[环比] as "+
"'[Measures].[金额]/([Measures].[金额],[Time].CurrentMember.PrevMember)-1', FORMAT_STRING=\"0%\""+
" select {[Measures].[金额],[Measures].[环比]} on axis(0),{[Time].[2017].[4].Lag(20):[Time].[2017].[4]} on rows from [Col_trade_detail] "+
" where [Account].[Account_L].[行政事业性收费收入].[公安行政事业性收费收入]";
String mdxStr_151="with member [Measures].[环比] as "+
"'[Measures].[金额]/([Measures].[金额],[Time].CurrentMember.PrevMember)-1', FORMAT_STRING=\"0%\""+
" select {[Measures].[金额],[Measures].[环比]} on axis(0),{[Time].[2017].Children} on rows from [Col_trade_detail] "+
" where [Account].[Account_L].[行政事业性收费收入].[公安行政事业性收费收入]";
//这里我想求全部年度的的季度及月份的环比? 首先查2017年第4季度前面30个季度的同比情况
String mdxStr_152="with member [Measures].[环比] as "+
"'[Measures].[金额]/([Measures].[金额],[Time].CurrentMember.PrevMember)-1', FORMAT_STRING=\"0%\""+
" select {[Measures].[金额],[Measures].[环比]} on axis(0),{[Time].[2011].[4]:[Time].[2017].[4]} on rows from [Col_trade_detail] "+
" where [Account].[Account_L].[行政事业性收费收入].[公安行政事业性收费收入]";
String mdxStr_153="with member [Measures].[环比] as "+
"'[Measures].[金额]/([Measures].[金额],[Time].CurrentMember.PrevMember)-1', FORMAT_STRING=\"0%\""+
" select {[Measures].[金额],[Measures].[环比]} on axis(0),{[Time].[2017].[4].Lag(20):[Time].[2017].[4]} on rows from [Col_trade_detail] "+
" where [Account].[Account_L].[行政事业性收费收入].[公安行政事业性收费收入]";
//修正 应对前一期可能为0的情况 iif 有问题?
String mdxStr_154="with member [Measures].[环比] as "+
"'IIF(([Measures].[金额]=0),null," +
"[Measures].[金额]/([Measures].[金额],[Time].CurrentMember.PrevMember)-1)', FORMAT_STRING=\"0%\""+
" select {[Measures].[金额],[Measures].[环比]} on axis(0),{[Time].[2017].[4].Lag(20):[Time].[2017].[4]} on rows from [Col_trade_detail] "+
" where [Account].[Account_L].[行政事业性收费收入].[公安行政事业性收费收入]";
チェーンの結果:
警察の業界管理料、各年の第一四半期の興味深い特徴を持っている急激な管理費チェーンを行っている、なぜ、私は、結合、業界の特性を知ることが怖いです。
IIF:
ブール条件が真か偽であるによると、表現の異なるブランチを計算します。
语法:式IIf(論理式、Expression1の[HINT <ヒント>] 1、式[HINT <ヒント>])
年:
いとこは:指定されたサブサブメンバーのメンバーの親メンバー以下同じ相対的な位置を持っているを返します。
いとこ(Member_Expression、Ancestor_Member_Expression)
例:
String mdxStr_160="SELECT Cousin([Time].[2017].[4],[Time].[2016]) ON 0 FROM [Col_trade_detail]";
結果:
年:
String mdxStr_160="SELECT Cousin([Time].[2017].[4],[Time].[2016]) ON 0 FROM [Col_trade_detail]";
String mdxStr_161="WITH MEMBER Measures.[同比] AS"+
"'[Measures].[金额]/([Measures].[金额], Cousin([Time].CurrentMember, [Time].CurrentMember.Parent.PrevMember))- 1', FORMAT_STRING = \"0%\""+
" SELECT {[Measures].[金额], Measures.[同比]} ON 0,"+
"{[Time].[2011].[1]:[Time].[2017].[4]} ON 1"+
" FROM [Col_trade_detail] where [Account].[Account_L].[行政事业性收费收入].[公安行政事业性收费收入]";
String mdxStr_162="WITH MEMBER Measures.[同比] AS"+
"'[Measures].[金额]/([Measures].[金额], Cousin([Time].CurrentMember, [Time].CurrentMember.Parent.PrevMember))- 1', FORMAT_STRING = \"0%\""+
" SELECT {[Measures].[金额], Measures.[同比]} ON 0,"+
"{[Time].[2008].[1]:[Time].[2017].[4]} ON 1"+
" FROM [Col_trade_detail] where [Account].[Account_L].[行政事业性收费收入].[公安行政事业性收费收入].[公民出入境证件费]";
結果:
容易にPARALLELPERIODによって形成することが、例を指示:
String mdxStr_167="WITH MEMBER Measures.[同比] AS"+
"'([Measures].[金额]-([Measures].[金额],ParallelPeriod([Time].[Year],1,[Time].[Quarter].currentMember)))/" +
"([Measures].[金额],ParallelPeriod([Time].[Year],1,[Time].[Quarter].currentMember))', FORMAT_STRING = \"0%\""+
" SELECT {[Measures].[金额], Measures.[同比]} ON 0,"+
"{[Time].[2011].[1]:[Time].[2017].[4]} ON 1"+
" FROM [Col_trade_detail] where [Account].[Account_L].[行政事业性收费收入].[公安行政事业性收费收入]";
結果:
それは見ることができます。mdxStr_167とmdxStr_161文は同じです。
ボリューム:
ドリル:
私の理解では、ということであるドリルアプリケーションDrilldownLevel機能、
DrilldownLevel:Drills down the members of a set to one level below the lowest level represented in the set.
DrilldownLevel(Set_Expression [,[Level_Expression] ,[Index]] [,INCLUDE_CALC_MEMBERS])
例1:
String mdxStr_171="SELECT non empty DrilldownLevel({[Account].[Account_L].[行政事业性收费收入]}) ON COLUMNS from [Col_trade_detail] " +
" where [Time].[2017]";
结果:
ps:如果不限定[Time].[2017],前面的年份是年份,什么都查不出来!空值的处理,后面需要专题学习、测试。
本节未完,待续.....