我正在尝试使用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
发布于 2014-03-25 11:15:18
使用Adv可以工作,如果您想向前移动12个成员,那么您可以通过多种方式导航。
试试看以下几点。它应该在currentmember前12天返回日期
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函数向前推进到等效日期,如下所示:
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日历年,您可以执行以下操作:
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中有以下内容:
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];适应您的情景:
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];https://stackoverflow.com/questions/22629814
复制相似问题