使用MDX进行环比查询

发表于:2007-05-25来源:作者:点击数: 标签:报表环比mdx查询进行
在报表查询中经常要进行本期和上期比较,比如3月销售额和2月销售额的比较!一般有绝对值和相对值之分, 如 本期增量=本期值-上期值;绝对值 本期增幅=(本期值-上期值)/本期值;相对值 1:MDX本查询 with member [time2].[本期增量] as '[time2].[所有 time

在报表查询中经常要进行本期和上期比较,比如3月销售额和2月销售额的比较!一般有绝对值和相对值之分,
如 本期增量=本期值-上期值;绝对值
   本期增幅=(本期值-上期值)/本期值;相对值
1:MDX本查询
with member [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].[本期增幅]} on columns,
   {[Measures].[Store Sales]}on rows
from Sales
3月和2月相比销售量增量和增幅。
备注:1)如果无上期成员,则值为0;
2)MDX提供PrevMember函数表示上一个成员,[所有 time2].[1997].[Q1].[2]可以用[所有 time2].[1997].[Q1].[3].
PrevMember代替。
2:求解顺序
如果生成多个计算成员,某个计算成员使用其它计算成员,则使用SOLVE_ORDER 指明生成顺序
如:
with member [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

 


 

原文转自:http://www.ltesting.net