2015-04-02 70 views
3

我有一個4維的立方體,我有一個叫做Transaction Count的度量。現在我想要計算上述度量的所有維度中的Percentage所有維度上通用的計算度量值

我也有一個叫Cars的尺寸。我有所有Cars的計數,現在我已經定義了一個計算的度量,用於根據交易總數計算每輛車的Percentage。但它只適用於特定的維度。

如何創建可在所有維度上使用的單個百分比計算度量值?

MDX用於計算度量:(其工作僅Carmake尺寸)

CASE 
    WHEN ISEMPTY([MEASURES].[Trans COUNT]) 
    THEN 0 
    ELSE ([Dim Car Make].[Hierarchy].CURRENTMEMBER, 
      [MEASURES].[FACT COLORPERFORMANCE COUNT])/ 
     ([DIM CAR MAKE].[CARMAKE].[(ALL)].[ALL], 
      [MEASURES].[Trans COUNT]) 
END 

我已經有一個TRANCOUNT(1000)測量。現在我需要創建一個應該在所有維度上計算的計算的測量值Freq%。

截圖 - >http://i.stack.imgur.com/iuaQO.jpg(需要10代表用於發佈的圖像)中的屏幕截圖

表1 - 你拖放carmake尺寸,則兩個陳計數和頻率應%按CarMake擊穿來計算。

表2截圖 - 您刪除CarMake並拖動質量,然後Tran Count和Freq%應按照質量細分計算。

表3中的屏幕截圖 - 您刪除質量並拖動品牌,然後Tran Count和Freq%應按品牌明細計算。

+1

可能 - 請將您當前的'mdx'嘗試添加到問題 – whytheq 2015-04-02 17:36:31

+0

您需要一個計算維度。在Chris Webb的 [Expert Cube Development](http://www.amazon.com/Expert-Cube-Development-Multidimensional-Models/dp/1849689903)中有一個很長的例子。如果你無法查看,請告訴我,我將在工作時更詳細地解釋它。 – 2015-04-08 17:39:07

+0

@whytheq:我已經用相關的MDX更新了這個問題,並添加了我需要發生的事情的截圖。 – BalajiB 2015-04-09 11:25:51

回答

0

我發現最好的方法是使用AXIS()來動態獲取當前使用的維度。

with 
member Member_Lvl as AXIS(0).item(0).level.ordinal --get the level for next calc 
member All_Member as sum(ancestor(axis(0).item(0).hierarchy.currentMember,<yourMeasure>),Member_Lvl) 
member Percent_of_All as sum(axis(0).item(0).hierarchy.currentMember,<yourMeasure>)/All_Member 

select <Your Dim > on 0, {<Your Measure>, Percent_of_All} on 1 
from <Your Cueb> 

注意:更換計算SUM函數,如果你需要其他的聚集。

相關問題