如何为计算成员构建动态MDX公式? [英] How to build a dynamic MDX formula for a calculated member?

查看:144
本文介绍了如何为计算成员构建动态MDX公式?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试创建一个计算会员以获得上周的总结。
没有问题得到周的值(我需要它是两位数,即'05',所以添加100-1)

I am trying to create a Calculated Member to get a sum up to last week. No problem to get the week value (I need it to be two digits i.e. '05', so adding 100-1 )

with
Member [Measures].Week as 
  'right(str(int(99+datepart ( ''ww'', Now()))),2)' 

- 按预期工作

member [Measures].SalesUpToWeek as
  'strtomember(
     "aggregate(periodstodate([Dim].[2015],[Dim].[2015].[" + ([Measures].Week) + "]),[Measures].[Sales])")'

我得到文字值

aggregate(
    periodstodate([Dim].[2015],[Dim].[2015].[25])
   ,[Measures].[Sales]
)

我需要的是这个 MDX 计算的价值。

What I need is the value of this MDX calculation.

所有其他尝试都会结束语法错误。作为一个例子

All other attempts end up with a syntax error. Just as an example

member [Measures].SumToWeek as 
 'aggregate(
     periodstodate(
       [Dim].[2015],[Dim].[2015].[' + strtomember([Measures].Week) + '])
   ,[Measures].[Sales])'   

错误


错误在第2行第0列。遇到:之后:[\\\

Lexical error at line 2, column 0. Encountered: after : "[\n"

任何想法?

推荐答案

我对Pentaho论坛有一个有趣的建议,指出我有一个很好的博客文章,允许写一个优雅的解决方案:

I got an interesting suggestion on Pentaho forums that pointed me to a nice blog post which allowed to write an elegant solution:

http:/ /diethardsteiner.blogspot.com.es/2009/10/current-date-function-on-mondrian.html

with
member [Measures].sm as aggregate(
    periodstodate(
        currentdatemember([Dim],'["Dim"]\.[yyyy]'),                     -- current year
        currentdatemember([Dim],'["Dim"]\.[yyyy]\.[ww]').lag(1)   -- previous week
    ),
    [Measures].[Sales])

Thks

这篇关于如何为计算成员构建动态MDX公式?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆