Same Hierarchy Tuple (MDX+)
Since icCube 4.8 it is possible to relax standard MDX constraint to allow several members of the same hierarchy in a tuple.
In standard MDX it is not possible to have a tuple with two members of the same hierarchy. So putting the same hierarchy on two axis will return an error. The 'standard' solution is duplicating the dimension, but this not only implies changing the schema but also decrease the efficiency of the Server.
In icCube since version 4.8, if icCube.dimensionalityCheck property is set to false, it's possible to relax this constraint. Now, the following syntax is valid :
MEMBER [Correlation] AS Correlation( [Products] , ([Geography].current(0),[Measures].[Sales]), ([Geography].current(1),[Measures].[Sales]) )
[Geography].[Countries] on 0,
[Geography].[Countries] on 1
How this new feature works :
Multiple members of the same hierarchy can be used in axis and calculated members but will generate an error if used in a where clause or a subquery.
Both current and currentMember will return a set if the tuple has more than one member for the requested hierarchy.
IMPORTANT, crossjoin and set will perform an exist on each tuples. Some tuples will be removed even though they might exist. For example the tuple ( [Geography].[France],[Geography].[US] ) will be removed. Advise, do not rely on this feature.
The fact evaluation of a tuple will perform an AND of all members, including those of the same hierarchy. So unless you have a parent-child or many-to-many relation the evaluation of the tuple will return empty. For example, ( [Geography].[France],[Geography].[US] ) is empty. This is the same behavior as the one we would get by using the two different hierarchies.
Please check the example below and try on your own to get a better understanding.
Special Examples (errors, null, ...)
Find here the value of the XMLA properties when not specified otherwise.