iCube-获取昨天&x27;MDX查询中的s成员
我有一个日期维度,看起来像这样iCube-获取昨天&x27;MDX查询中的s成员,mdx,iccube,Mdx,Iccube,我有一个日期维度,看起来像这样[Date].[Date].[day].[yyyy-MM-dd],我想得到代表昨天的成员,即[Date].[Date].[day].[2016-07-27]。我怎样才能做到这一点 在一些关于MDX的线程中,但不是特定于IcCube的,它是这样写的: 1. STRTOMEMBER(“[date].[date].[day].[”+格式(NOW()-1,“yyyy-MM-dd”)+“])” 2. STRTOMEMBER(“[date].[date].[day].[”+VB
[Date].[Date].[day].[yyyy-MM-dd]
,我想得到代表昨天的成员,即[Date].[Date].[day].[2016-07-27]
。我怎样才能做到这一点
在一些关于MDX的线程中,但不是特定于IcCube的,它是这样写的:1. <代码>STRTOMEMBER(“[date].[date].[day].[”+格式(NOW()-1,“yyyy-MM-dd”)+“])”
2. <代码>STRTOMEMBER(“[date].[date].[day].[”+VBAMDX.FORMAT(VBAMDX.NOW()-1,“yyyy-MM-dd”)+“])” 第一个解决方案抛出一个声明“未知函数格式”的错误,第二个解决方案中的错误为“VBAMDX.NOW()”需要一个参数“index”。如果将VBAMDX.NOW替换为NOW,则VBAMDX.FORMAT也是如此。
但是解释VBAMDX的所有页面都有两个格式参数,目前没有…是
-1
导致现在的错误吗
那么,下面删除-1
并添加一个滞后
的方法是否可行
STRTOMEMBER("[date].[date].[day].["+ VBAMDX.FORMAT(VBAMDX.NOW(),"yyyy-MM-dd") +"]").LAG(1)
我刚刚注意到,在您的代码中,在成员名称最后一部分的方括号前缺少一个与号,因此请尝试以下操作之一:
STRTOMEMBER("[date].[date].[day].&["+ FORMAT(NOW()-1,"yyyy-MM-dd") +"]")
或
如果你尝试这三种方法,它们都失败了吗
WITH
MEMBER [Measures].[Today1] AS
VBAMDX.NOW()
MEMBER [Measures].[Today2] AS
VBAMDX.NOW()-1
MEMBER [Measures].[Today3] AS
VBAMDX.FORMAT(VBAMDX.NOW()-1,"yyyy-MM-dd")
...
我想这是因为Excel格式不受支持(最新版本的icCube改进了错误报告)。相反,我将使用本文中提到的函数:
但在icCube中,如果您的密钥是日期,则该函数是一个更健壮的解决方案:
LookupByKey( [Time].[Calendar].[Day], Now() )
或者,如果您需要日期:
LookupByKey( [Time].[Calendar].[Day], Today() )
您可以使用函数()轻松导航日期
希望有帮助。仍然是相同的错误:“语法错误:隐式Item()函数调用(应用于:语法错误:隐式Item()函数调用(应用于:VBAMDX.NOW)需要一个(索引)参数:没有参数。)需要一个(索引)参数:没有参数。”--此外,如果今天的成员不存在,lag()也没有帮助…@UlrichWuenstel我认为您的代码中可能缺少一个&
符号-请参阅我的答案中的添加。不幸的是,这与问题无关。该错误指出,函数VBAMDX.NOW()需要一个参数,但我不知道是什么。这似乎是IcCube固有的问题。请检查LookupByKey函数,这是一个更好的选择
LookupByKey( [Time].[Calendar].[Day], Now() )
LookupByKey( [Time].[Calendar].[Day], Today() )