Mdx 获取所选期间中关键日期的成员值
在mdx中我需要一个特殊的成员值:在下面的命令中,我为客户选择数据。结果显示customergroup中客户的每月金额、带有姓名的客户ID和客户级别。客户级别将在期间内发生变化 现在我想要的是关键日期的客户级别,即“2013年7月13日”。你知道我如何过滤这个值吗Mdx 获取所选期间中关键日期的成员值,mdx,Mdx,在mdx中我需要一个特殊的成员值:在下面的命令中,我为客户选择数据。结果显示customergroup中客户的每月金额、带有姓名的客户ID和客户级别。客户级别将在期间内发生变化 现在我想要的是关键日期的客户级别,即“2013年7月13日”。你知道我如何过滤这个值吗 SELECT { [Measures].[Amount1] ,[Measures].[Amount2] } ON COLUMNS ,NonEmpty ( [Dim Customer].[Cus
SELECT
{
[Measures].[Amount1]
,[Measures].[Amount2]
} ON COLUMNS
,NonEmpty
(
[Dim Customer].[Customer Group ID].Children*
[Dim Customer].[Customer ID].Children*
[Dim Customer].[Customer Name].Children*
[Dim Customer].[Customer Level].Children*
[Time].[Month].Children
)
DIMENSION PROPERTIES
MEMBER_CAPTION
,MEMBER_UNIQUE_NAME
ON ROWS
FROM
(
SELECT
{
[Time].[Year - Month - Date].[Date].&[2013-05-01T00:00:00]
:
[Time].[Year - Month - Date].[Date].&[2013-12-01T00:00:00]
,
[Time].[Year - Month - Date].[Date].&[2012-05-01T00:00:00]
:
[Time].[Year - Month - Date].[Date].&[2012-12-01T00:00:00]
} ON COLUMNS
FROM [MyCube]
);
可以创建自定义集。如果您只希望客户在2013年7月13日有活动,那么以下内容就是一个开始:
WITH SET [X] AS
NonEmpty(
[Dim Customer].[Customer Level].Children
,([Time].[Year - Month - Date].[Date].&[2013-07-01T00:00:00])
)
SELECT
{
[Measures].[Amount1]
,[Measures].[Amount2]
} ON COLUMNS
,NonEmpty
(
[Dim Customer].[Customer Group ID].Children*
[Dim Customer].[Customer ID].Children*
[Dim Customer].[Customer Name].Children*
[X]*
[Time].[Month].Children
)
ON ROWS
FROM
(
SELECT
{
[Time].[Year - Month - Date].[Date].&[2013-05-01T00:00:00]
:
[Time].[Year - Month - Date].[Date].&[2013-12-01T00:00:00]
,
[Time].[Year - Month - Date].[Date].&[2012-05-01T00:00:00]
:
[Time].[Year - Month - Date].[Date].&[2012-12-01T00:00:00]
} ON COLUMNS
FROM [MyCube]
);
如果我的理解是正确的,您希望仅在日期为2013年7月13日时显示级别,否则将其保留为空。利用您拥有的年-月-日层次结构,您可以尝试以下代码:
WITH
MEMBER [Dim Customer].[Customer Level].[Required Level] AS
IIF
(
[Time].[Year - Month - Date].CURRENTMEMBER IS [Time].[Year - Month - Date].[Date].&[2013-07-13T00:00:00]
,NonEmpty
(
[Dim Customer].[Customer Level].CHILDREN,
[Time].[Year - Month - Date].[Date].&[2013-07-13T00:00:00]
)
,NULL
)
SELECT
{
[Measures].[Amount1]
,[Measures].[Amount2]
} ON COLUMNS
,NonEmpty
(
[Dim Customer].[Customer Group ID].Children*
[Dim Customer].[Customer ID].Children*
[Dim Customer].[Customer Name].Children*
[Dim Customer].[Customer Level].[Required Level]*
HIERARCHIZE
(
{
[Time].[Year - Month - Date].[Month].Children
+
[Time].[Year - Month - Date].[Date].&[2013-07-13T00:00:00]
}
)
)
DIMENSION PROPERTIES
MEMBER_CAPTION
,MEMBER_UNIQUE_NAME
ON ROWS
FROM
(
SELECT
{
[Time].[Year - Month - Date].[Date].&[2013-05-01T00:00:00]
:
[Time].[Year - Month - Date].[Date].&[2013-12-01T00:00:00]
,
[Time].[Year - Month - Date].[Date].&[2012-05-01T00:00:00]
:
[Time].[Year - Month - Date].[Date].&[2012-12-01T00:00:00]
} ON COLUMNS
FROM [MyCube]
);
第二种方法-分别计算并合并结果
SELECT
{
[Measures].[Amount1]
,[Measures].[Amount2]
} ON COLUMNS
,NonEmpty
(
[Dim Customer].[Customer Group ID].Children*
[Dim Customer].[Customer ID].Children*
[Dim Customer].[Customer Name].Children*
NULL*
[Time].[Year - Month - Date].[Month].Children
)
+
NonEmpty
(
[Dim Customer].[Customer Group ID].Children*
[Dim Customer].[Customer ID].Children*
[Dim Customer].[Customer Name].Children*
[Dim Customer].[Customer Level].CHILDREN*
[Time].[Year - Month - Date].[Date].&[2013-07-13T00:00:00]
)
DIMENSION PROPERTIES
MEMBER_CAPTION
,MEMBER_UNIQUE_NAME
ON ROWS
FROM
(
SELECT
{
[Time].[Year - Month - Date].[Date].&[2013-05-01T00:00:00]
:
[Time].[Year - Month - Date].[Date].&[2013-12-01T00:00:00]
,
[Time].[Year - Month - Date].[Date].&[2012-05-01T00:00:00]
:
[Time].[Year - Month - Date].[Date].&[2012-12-01T00:00:00]
} ON COLUMNS
FROM [MyCube]
);
…因此,金额1和金额2应仅为2013年7月13日的金额?金额应为2013年5月1日至2013年12月1日期间的总结。我只需要2013年7月13日关键日期的[客户级别]。谢谢。对于其他日期,它需要为空?您好,每个客户在7月13日都有自己的值,我必须在整个期间使用此值。2013年5月1日-2013年12月1日与子选择中的日期范围不一致?为什么子选项中有2012年的日期?很抱歉,我没有写任何答案,但项目目前处于搁置状态。@Katharina321没问题。我们将有兴趣看到您的解决方案一旦完成。感谢您的建议。