如何跨另一个层次结构执行 MDX 成员减法?

How do I perform MDX member subtraction across another hierarchy?

我有一个包含客户和产品的多维数据集。每个客户持有不同数量的产品组合。

我想计算一个客户和另一个客户在每种产品中持有的金额的差异(减法)。

我正在使用 SQL Server Analysis Services 2014。来自 AdventureWorksDW2014 的示例是:

select
{[Customer].[Country].&[Australia],[Customer].[Country].&[Canada]} on columns,
non empty ([Product].[Category].members, [Measures].[Internet Sales Amount]) on rows
from 
[Adventure Works]

这会生成以下输出:

                Australia       Canada
All Products    ,061,000.58   ,977,844.86
Accessories     8,690.63     3,377.85
Bikes           ,852,050.00   ,821,302.39
Clothing        ,259.95      ,164.62

然而我想要得到的是

                Australia       Canada          (Australia - Canada)
All Products    ,061,000.58   ,977,844.86   ,083,155.72
Accessories     8,690.63     3,377.85     ,312.78
Bikes           ,852,050.00   ,821,302.39   ,030,747.61
Clothing        ,259.95      ,164.62      ,095.33

理想情况下,这不仅可以在 MDX 中执行,还允许用户 select 任意两个客户进行比较。

这是我的第一个 MDX 问题,所以请让我知道是否应该以不同的方式构建它。

这是所需输出的 ​​MDX 查询:

WITH MEMBER Australia AS
SUM({([Measures].[Internet Sales Amount], [Customer].[Country].&[Australia])}), FORMAT_STRING = "#,#.##"
MEMBER Canada AS
SUM({([Measures].[Internet Sales Amount], [Customer].[Country].&[Canada])}), FORMAT_STRING = "#,#.##"
MEMBER [Australia - Canada] AS
[Australia] - [Canada]
SELECT
{[Australia], [Canada], [Australia - Canada]} ON COLUMNS,
NON EMPTY {[Product].[Category].MEMBERS} ON ROWS
FROM [Adventure Works]