使用MDX进行环比查询
发表于:2007-07-02来源:作者:点击数:
标签:
在报表查询中经常要进行本期和上期比较,比如3月销售额和2月销售额的比较!一般有绝对值和相对值之分, 如 本期增量=本期值-上期值;绝对值 本期增幅=(本期值-上期值)/本期值;相对值 1:MDX本查询 with member [time2].[本期增量] as @#[time2].[所有 tim
在报表查询中经常要进行本期和上期比较,比如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