我想在列上合并来自不同维度的两个MDX
个查询。例如:
Number of Sales/Product Type vs. Gender and State:
| CA | OR | WA | Male | Female
------------------------------------------------
food | 125 | 343 | 130 | 570 | 459
------------------------------------------------
drink | 123 | 465 | 135 | 678 | 343
州和性别是各自的维度,我想在不同的产品类型(食品,饮料)中进行一些汇总(例如销售计数)。下面是一些如何工作的想法,虽然查询无法连接,因为它们具有不同的层次结构。我可以如何处理男性和女性,例如,作为此结果中的列?
SELECT
NON EMPTY
{ [Store].[Store State].Members, [Gender].[Gender].Members } ON COLUMNS,
{ [Product].[Product Family].Members } ON ROWS
FROM [Sales]
WHERE { [Measures].[Sales Count] }
示例错误:
MondrianEvaluationException: Expressions must have the same hierarchy
有没有办法在MDX中有效地做到这一点?如果是,我可以为每个colunm指定特定的聚合(例如,总销售的总状态数据,按利润划分的性别数据)。
感谢您的帮助
答案 0 :(得分:0)
我不知道以下是否适用于蒙德里安:
SELECT
{[Measures].[Internet Sales Amount]} ON 0
,NON EMPTY
{
(
[Customer].[Gender].[Gender].MEMBERS
,[Customer].[Marital Status].[(All)]
)
,(
[Customer].[Gender].[(All)]
,[Customer].[Marital Status].[Marital Status].MEMBERS
)
} ON 1
FROM [Adventure Works];
菲利普
答案 1 :(得分:0)
在MDX中,所有轴必须具有相同的维度。最好的方法是运行两个查询,并在客户端工具中将它们显示在一起。
但是,你可以做类似于@Vhteghem_Ph提出的建议:
SELECT
NON EMPTY
[Store].[Store State].Members * { [Gender].[Gender].[(All Gender)] }
+
{ [Store].[Store State].[(All Store State)] } * [Gender].[Gender].Members
ON COLUMNS,
{ [Product].[Product Family].Members } ON ROWS
FROM [Sales]
WHERE { [Measures].[Sales Count] }
请注意,此处使用的+
是两个集合作为参数,是Union(set1, set2)
的缩写形式。同样,Union需要两个集具有相同的维度,在这种情况下,集合的第一个维度是Store States
层次结构,第二个维度是Gender
层次结构。