使用MDX进行环比查询
2008-04-27 05:13
190 查看
在报表查询中经常要进行本期和上期比较,比如3月销售额和2月销售额的比较!一般有绝对值和相对值之分,
如本期增量=本期值-上期值;绝对值
本期增幅=(本期值-上期值)/本期值;相对值
1:MDX本查询
withmember[time2].[本期增量]as'[time2].[所有time2].[1997].[Q1].[3]-[time2].[所有time2].[1997].[Q1].[2]'
member[time2].[本期增幅]as'[time2].[本期增量]/[time2].[所有time2].[1997].[Q1].[3]'
select
{[time2].[所有time2].[1997].[Q1].[3],[time2].[所有time2].[1997].[Q1].[2],
[time2].[本期增量],[time2].[本期增幅]}oncolumns,
{[Measures].[StoreSales]}onrows
fromSales
3月和2月相比销售量增量和增幅。
备注:1)如果无上期成员,则值为0;
2)MDX提供PrevMember函数表示上一个成员,[所有time2].[1997].[Q1].[2]可以用[所有time2].[1997].[Q1].[3].
PrevMember代替。
2:求解顺序
如果生成多个计算成员,某个计算成员使用其它计算成员,则使用SOLVE_ORDER指明生成顺序
如:
withmember[time2].[本期增量]as'[time2].[所有time2].[1997].[Q1].[3]-[time2].[所有time2].[1997].[Q1].[2]'
,SOLVE_ORDER=1,
member[time2].[本期增幅]as'[time2].[本期增量]/[time2].[所有time2].[1997].[Q1].[3]'
SOLVE_ORDER=2
如本期增量=本期值-上期值;绝对值
本期增幅=(本期值-上期值)/本期值;相对值
1:MDX本查询
withmember[time2].[本期增量]as'[time2].[所有time2].[1997].[Q1].[3]-[time2].[所有time2].[1997].[Q1].[2]'
member[time2].[本期增幅]as'[time2].[本期增量]/[time2].[所有time2].[1997].[Q1].[3]'
select
{[time2].[所有time2].[1997].[Q1].[3],[time2].[所有time2].[1997].[Q1].[2],
[time2].[本期增量],[time2].[本期增幅]}oncolumns,
{[Measures].[StoreSales]}onrows
fromSales
3月和2月相比销售量增量和增幅。
备注:1)如果无上期成员,则值为0;
2)MDX提供PrevMember函数表示上一个成员,[所有time2].[1997].[Q1].[2]可以用[所有time2].[1997].[Q1].[3].
PrevMember代替。
2:求解顺序
如果生成多个计算成员,某个计算成员使用其它计算成员,则使用SOLVE_ORDER指明生成顺序
如:
withmember[time2].[本期增量]as'[time2].[所有time2].[1997].[Q1].[3]-[time2].[所有time2].[1997].[Q1].[2]'
,SOLVE_ORDER=1,
member[time2].[本期增幅]as'[time2].[本期增量]/[time2].[所有time2].[1997].[Q1].[3]'
SOLVE_ORDER=2
相关文章推荐
- 使用 Order By字句对查询结果进行排序
- 使用spring的JdbcTemplate进行查询的三种回调方式的比较
- 使用 PreparedStatement 进行模糊查询
- 使用 PreparedStatement 进行模糊查询
- 在HQL中使用单个的模糊查询,以及对于多个查询条件进行查询的话
- 使用ProxySQL查询缓存进行扩展
- Mybatis使用MySQL进行模糊查询时输入中文检索不到结果
- 使用JDBC对数据库进行查询的前期准备工作,以及简单的JDBC访问MySQL数据库(Mac)
- 对dataGridView和DataTable使用DataView进行多次查询
- 改进版基于Spark2.2使用Spark SQL和mysql数据库进行诗歌查询及自动集句
- EF中使用linq进行关联查询
- 使用mysql数据库进行左右连接查询的时候出现错误提示 Column 'id' in where clause is ambiguous
- 在Hibernate中使用HQL通过Join进行关联查询
- 使用Explain进行查询及应用优化
- List集合使用Linq进行in条件查询
- 使用PL/SQL进行模糊查询时显示错误ORA-00911:无效字符
- JPA数据的操作:增加,删除,修改,获取,使用JPOL进行查询
- 使用Expression进行查询拼接
- web.py 0.3 新手指南 - 使用db.query进行高级数据库查询
- 使用sqlcmd进行MS-dos方式查询