2016-01-05 26 views
0

我有一個客戶和產品的立方體。每個客戶持有不同數量的產品組合。如何在另一個層次結構中執行MDX成員減法?

我想計算一個客戶和另一個客戶之間在每個產品中持有的金額的差異(減法)。

我使用SQL Server分析服務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 $9,061,000.58 $1,977,844.86 
Accessories  $138,690.63  $103,377.85 
Bikes   $8,852,050.00 $1,821,302.39 
Clothing  $70,259.95  $53,164.62 

不過,我想獲得什麼

   Australia  Canada   (Australia - Canada) 
All Products $9,061,000.58 $1,977,844.86 $7,083,155.72 
Accessories  $138,690.63  $103,377.85  $35,312.78 
Bikes   $8,852,050.00 $1,821,302.39 $7,030,747.61 
Clothing  $70,259.95  $53,164.62  $17,095.33 

理想情況下,這不僅可以在MDX中執行,但允許您ser選擇任意兩個任意客戶進行比較。

這是我的第一個MDX問題,所以請讓我知道它是否應該以不同方式構造。

回答

1

下面是所需的輸出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] 

請註明這是答案,如果它滿足您的要求。

+0

非常感謝,這會產生正確的輸出。 我應該如何設計我的魔方以允許用戶選擇任意國家的任意組合?我需要兩個單獨的國家/地區維度CountriesDim1和CountriesDim2,那麼用戶可以同時添加? – Tamar

+0

嘗試將此標記爲答案並打開一個新問題。這個答案已經完成了它的工作。 – SouravA

+0

謝謝,已標記爲已回答,我將針對如何通過多種不同組合進行此項工作提出單獨的問題。 – Tamar

相關問題