我需要mdx中的特殊成员值:在下面的命令中,我为客户选择数据。结果显示customergroup中客户的每月金额,名称和客户级别的客户ID。客户级别将在期间内发生变化。
现在我想要的是关键日期的客户级别,即'2013年7月13日'。我知道如何过滤这个值。?
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]
);
答案 0 :(得分:0)
您可以创建自定义集。如果您只想要在13.July 2013
上有活动的客户,那么以下内容就是一个开始:
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]
);
答案 1 :(得分:0)
如果我的理解还可以,您希望在日期为13th July 2013
时显示级别 ,否则请将其保留为空白。利用您拥有的年 - 月 - 日期层次结构,您可以尝试以下代码:
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]
);