版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本小节内容:
Calculated Member
Named Set
本想换个非税历史数据库,发现hs市非税历史数据库数据是否可信是个问题:
1、是不是所有数据进系统了?
2、维度表关联键是否随时间变化,没有配套?
换回sz县的库吧,起码2017年的数据基本可信
Dimensional Calculations As Calculated Members
目前所知:
计算表单式也许可有做同样的事情,但是,对于反复用到的技术,可以作为Calculated Members
he MDX specification allows three different lifetime scopes for calculated members:
- Within the duration of a query (“query scope”)
- Within the duration of a user session (“session scope”)
- Persistent within a cube until the calculated member is dropped (“global scope”)
Analysis Services supports the first two of these scopes.
基本计算成员很简单,这里我想比较2个项目2年的间的变化,还要比较2个项目间的变化,不是吗,典型的交叉计算,这就有个优先级的问题,直接上个例子:
String mdxStr_10 =
"with member [Account].[v_] as" +
"'[Account].[Account_L].[政府性基金收入].[计提廉租住房资金]/[Account].[Account_L].[其他收入].[其他收入].[房租收入]'" +
" ,SOLVE_ORDER = 0" +
"member [Time].[Time].[增长] as '[Time].[Time].[2017]-[Time].[Time].[2016]',SOLVE_ORDER = 1"+
" SELECT"+
" non empty {[Account].[Account_L].[政府性基金收入].[计提廉租住房资金]," +
"[Account].[Account_L].[其他收入].[其他收入].[房租收入]," +
"[Account].[v_]} ON COLUMNS,"
+"{[Time].[Time].[2016],[Time].[Time].[2017],[Time].[Time].[增长]} ON ROWS "
+ "FROM [Col_trade_detail]";
测试结果:
由上面的结果,可知,廉租房资金2016年是房租收入的的3倍,2017年是房租收入的2倍,可见,房租收入稳定性更高。
过程中,报了个错误:
mondrian.parser.TokenMgrError: Encountered: "\u2018" (8216), after : ""
好像我重新修改引号就好了
Named Set:
我理解,就是Set,给set起个名字。命名set,就是为了方便其他地方引用而已。
不多说,上例子:
String mdxStr_11 =
"with set [16-17年] as " +
"'{[Time].[Time].[2016],[Time].[Time].[2017]}' " +
" member [Account].[v_] as" +
"'[Account].[Account_L].[政府性基金收入].[计提廉租住房资金]/[Account].[Account_L].[其他收入].[其他收入].[房租收入]'" +
" ,SOLVE_ORDER = 0" +
"member [Time].[Time].[16-17增长] as '[Time].[Time].[2017]-[Time].[Time].[2016]',SOLVE_ORDER = 1"+
" SELECT"+
" non empty {[Account].[Account_L].[政府性基金收入].[计提廉租住房资金]," +
"[Account].[Account_L].[其他收入].[其他收入].[房租收入]," +
"[Account].[v_]} ON COLUMNS,"
+"{[Time].[Time].[2015],[16-17年],[Time].[Time].[16-17增长]} ON ROWS "
+ "FROM [Col_trade_detail]";
结果: