Mdx查询显示除本年度以外的所有年份的年度级数据
我有一个类似上面的问题。它在工作,它以月为单位返回2016年,其他年份以年为单位 现在我必须在这个mdx上添加更多的维度,但是当我尝试喜欢它时Mdx查询显示除本年度以外的所有年份的年度级数据,mdx,Mdx,我有一个类似上面的问题。它在工作,它以月为单位返回2016年,其他年份以年为单位 现在我必须在这个mdx上添加更多的维度,但是当我尝试喜欢它时 SELECT NON EMPTY {[Measures].[AMOUNTCUR]} ON 0 ,NON EMPTY { NULL : [PRX_UE_DATE].[Calender].[Year].&[2015] ,[PRX_UE_DATE].[Calender].[Year].&[201
SELECT
NON EMPTY
{[Measures].[AMOUNTCUR]} ON 0
,NON EMPTY
{
NULL : [PRX_UE_DATE].[Calender].[Year].&[2015]
,[PRX_UE_DATE].[Calender].[Year].&[2017]
,Descendants
(
[PRX_UE_DATE].[Calender].[Year].&[2016]
,[PRX_UE_DATE].[Calender].[Month]
)
} ON 1
FROM [PRX_SalesDataModel];
我发现错误成员、元组或集合必须在函数中使用相同的层次结构 您只需将所有日期维度内容保留在大括号中
{…}
:
SELECT
NON EMPTY
{[Measures].[AMOUNTCUR]} ON 0
,NON EMPTY
{
NULL : [PRX_UE_DATE].[Calender].[Year].&[2015]
,[PRX_UE_DATE].[Calender].[Year].&[2017]
,
Descendants
(
[PRX_UE_DATE].[Calender].[Year].&[2016]
,[PRX_UE_DATE].[Calender].[Month]
)
*
[PRX UE CLIENT].[SEGMENTID].ALLMEMBERS
} ON 1
FROM [PRX_SalesDataModel];
您甚至可以通过WITH子句将日期内容移动到命名集中,使其更具可读性:
SELECT
NON EMPTY
{[Measures].[AMOUNTCUR]} ON 0
,NON EMPTY
{
NULL : [PRX_UE_DATE].[Calender].[Year].&[2015]
,[PRX_UE_DATE].[Calender].[Year].&[2017]
,
Descendants
(
[PRX_UE_DATE].[Calender].[Year].&[2016]
,[PRX_UE_DATE].[Calender].[Month]
)
}
* [PRX UE CLIENT].[SEGMENTID].ALLMEMBERS
ON 1
FROM [PRX_SalesDataModel];
您已经从@whytheq获得了关于错误发生原因的答案。只有一部分我觉得还没有处理好。您正在手工创建一组年份。相反,它可以像下面那样动态化-
WITH SET [DatesSet] AS
{
NULL : [PRX_UE_DATE].[Calender].[Year].&[2015]
,[PRX_UE_DATE].[Calender].[Year].&[2017]
,
Descendants
(
[PRX_UE_DATE].[Calender].[Year].&[2016]
,[PRX_UE_DATE].[Calender].[Month]
)
}
SELECT
NON EMPTY
{[Measures].[AMOUNTCUR]} ON 0
,NON EMPTY
[DatesSet]
* [PRX UE CLIENT].[SEGMENTID].ALLMEMBERS
ON 1
FROM [PRX_SalesDataModel];
将AllyearsCeptCurrent设置为
滤器(
[PRX_UE_日期].[Calendar].[Year]。成员为yr,
yr.current.item(0).member_值格式(现在为(),“yyyy”)
)
非常感谢。现在,我明白我的错误了。(升级)我喜欢这个-可能也是一个使用子集的不错的替代解决方案?嗯…这是一个我没有用太多的函数,但该死的是,它也可以使用..昨天,我遇到了我见过的最奇怪的MDX。你也来看看,告诉我它是否漂亮:)-使用函数axis()
是另一个层次
with set AllYearsExceptCurrent as
filter(
[PRX_UE_DATE].[Calender].[Year].members as yr,
yr.current.item(0).member_value <> Format(Now(), "yyyy")
)