OLAP分析(七)-Calculated Member&Named Set

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/wh_xia_jun/article/details/90669276

本小节内容:

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]";

结果:

上一节:基本的mdx

下一节:一般计算

猜你喜欢

转载自blog.csdn.net/wh_xia_jun/article/details/90669276
set