首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >元组上的MDX DateAdd函数

元组上的MDX DateAdd函数
EN

Stack Overflow用户
提问于 2014-03-25 09:08:35
回答 1查看 8.8K关注 0票数 0

我正在尝试使用DateAdd()函数创建一组日期,但当我试图将一组元组作为参数传递时,会出现错误。下面的代码返回一个成员,但我正在寻找一组新的日期。

成员EFF为DATEADD("M",12,INJ DT,INJ DT) 选择{EFF INJ DT} ON列,在WVWC数据立方体FROI SROI中的行上损伤DATE.DATE.Members

我有以下尝试:

将EFF设置为DATEADD("M",12,伤害DATE.CurrentMember),选择{EFF } ON列,选择WVWC数据立方体FROI中行的损伤DATE.DATE.Members

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-25 11:15:18

使用Adv可以工作,如果您想向前移动12个成员,那么您可以通过多种方式导航。

试试看以下几点。它应该在currentmember前12天返回日期

代码语言:javascript
复制
WITH 
    MEMBER [MEASURES].[EFF INJ DT] AS
        [Date].[Calendar].CurrentMember.LEAD(12).MEMBERVALUE
SELECT 
    {[MEASURES].[EFF INJ DT]}  ON 0,
    {[Date].[Calendar].[Month].&[2006]&[4].CHILDREN} ON 1
FROM [Adventure Works];

看来你想要返回的日期是12个月以后。

因此,首先我们需要通过currentmember函数>对应于ANCESTOR的年份,然后使用COUSIN函数向前推进到等效日期,如下所示:

代码语言:javascript
复制
WITH 
    MEMBER [MEASURES].[EFF INJ DT] AS
    COUSIN(
        [Date].[Calendar].CurrentMember, 
        ANCESTOR(
            [Date].[Calendar].CurrentMember, 
            [Date].[Calendar].[Calendar Year]).LEAD(1)
            ).membervalue   
SELECT 
    {[MEASURES].[EFF INJ DT]}  ON 0,
    {[Date].[Calendar].[Month].&[2006]&[4].CHILDREN} ON 1
FROM [Adventure Works];

适应您的场景并假设INJURY DATE是一个多层次的user hierarchy' that contains another level called日历年,您可以执行以下操作:

代码语言:javascript
复制
WITH 
    MEMBER [MEASURES].[EFF INJ DT] AS
        COUSIN(
            [INJURY DATE].CurrentMember, 
            ANCESTOR(
                [INJURY DATE].CurrentMember, 
                [INJURY DATE].[Calendar Year]).LEAD(1)
                ).MEMBERVALUE   
SELECT 
    {[MEASURES].[EFF INJ DT]}  ON 0,
    {[INJURY DATE].[DATE].Members} ON 1
FROM [Adventure Works];

编辑

通过VBA工具,我们在Adv中有以下内容:

代码语言:javascript
复制
WITH 
    MEMBER [MEASURES].[EFF INJ DT] AS
      DATEADD(
      "M",
      12,
      [Date].[Calendar].CurrentMember.membervalue 
      )  
SELECT 
    {[MEASURES].[EFF INJ DT]}  ON 0,
    {[Date].[Calendar].[Month].&[2006]&[4].CHILDREN} ON 1
FROM [Adventure Works];

适应您的情景:

代码语言:javascript
复制
WITH 
    MEMBER [MEASURES].[EFF INJ DT] AS
    DATEADD(
    "M",
    12,
    [INJURY DATE].CurrentMember.membervalue 
    )  
SELECT 
    {[MEASURES].[EFF INJ DT]}  ON 0,
    {[INJURY DATE].[DATE].Members} ON 1
FROM [Adventure Works];
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22629814

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档