如何跨另一个层次结构执行 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]
我有一个包含客户和产品的多维数据集。每个客户持有不同数量的产品组合。
我想计算一个客户和另一个客户在每种产品中持有的金额的差异(减法)。
我正在使用 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]