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 [prx_salesdatamodel];
i have query above. it's working returns 2016 on month based others years year based.
now have add more dimensions on mdx when try
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 [prx_salesdatamodel];
i error members, tuples or sets must use same hierarchies in function.
you need keep date dimension stuff in set braces {...}
:
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 [prx_salesdatamodel];
you make maybe more readable moving date stuff named set via clause:
with set [datesset] { 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 [prx_salesdatamodel];