专注应用,关注发展,开拓创新

<-------------------------------------------------------------------& 珍惜生命 . 善用时间 . 把握未来 . 创造价值。

BlogJava 首页 新随笔 联系 聚合 管理
  11 Posts :: 17 Stories :: 10 Comments :: 0 Trackbacks
在报表查询中经常要进行本期和上期比较,比如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
posted on 2006-05-05 16:07 吴名居 阅读(362) 评论(0)  编辑  收藏 所属分类: 数库仓库-mondrian

只有注册用户登录后才能发表评论。


网站导航: