2015-01-08 75 views
0

我試圖創建減去處於不同羣體的措施計算的衡量措施,但前提是他們具有相同的維度成員的任何可能。 (編輯 - 基本上排除在減法UnknownMember號)SSAS計算成員對於具有相同尺寸

我一直在使用範圍嘗試:

CREATE MEMBER CURRENTCUBE.[Measures].[CalcField] as NULL; 

SCOPE([Dimension1].[DimensionField1].MEMBERS); 
    [Measures].[CalcField] = [Measures].[a] - [Measures].[b]; 
END SCOPE; 

我一直在使用一個元組沒有成功也試過:

CREATE MEMBER CURRENTCUBE.[Measures].[CalcField] 
AS ([Measures].[a] - [Measures].[b], [Dimension1].[DimensionField1]); 

但我覺得這是東西丟失的根本原因

編輯

COL AB尺寸
1 9 0 X
2. 0 2×
3. 1 5空

如果聚集的那些行我想要的答案7不是5

使用一個簡單的CASE WHEN作品,如果尺寸在使用,但除此之外,它盲目地再次減去一切

CASE 
    WHEN [Dimension1].[DimensionField1] IS [Dimension1].[DimensionField1].UnknownMember THEN 0 
    ELSE [Measures].[a] - [Measures].[b] 
END 

使用聚合工作在較高水平,但後來當我使用維度我沒有得到任何每個會員結果

Aggregate(
    EXCEPT(
    [Dimension1].[DimensionField1].Members, {[Dimension1].[DimensionField1].UnknownMember, [Dimension1].[DimensionField1].[All]} 
),[Measures].[a]) 
- 
Aggregate(
    EXCEPT(
    [Dimension1].[DimensionField1].Members, {[Dimension1].[DimensionField1].UnknownMember, [Dimension1].[DimensionField1].[All]} 
),[Measures].[b]) 

解決方法解決方案
我很抱歉,如果我不是我的問題清楚,但是我已經結束了通過把我在ETL階段,需要在數據解決這個問題而不是在Cube中計算它

+1

什麼是確切的問題?是否有錯誤訊息? – SouravA

+0

請提供基於Adventure Works的示例 - 我們將爲您找到解決方案。 –

+0

@DanielHanczyc - 在許多情況下,給出基於AW的示例可能是一項艱鉅的任務。在SO上,你會發現大部分關於SQL或MDX的問題都不是基於AW。 – SouravA

回答

0

您是否嘗試過總結或彙總第二個代碼段?

CREATE MEMBER CURRENTCUBE.[Measures].[CalcField] 
AS 
Sum(
    [Measures].[a] - [Measures].[b], 
    [Dimension1].[DimensionField1] 
); 

CREATE MEMBER CURRENTCUBE.[Measures].[CalcField] 
AS 
Aggregate(
    [Measures].[a] - [Measures].[b], 
    [Dimension1].[DimensionField1] 
); 
+0

這似乎並不怎麼[總工程]文檔匹配(http://msdn.microsoft.com/en-us/library/ms145484(V = SQL 0.105)的.aspx) – feedthedogs

+0

使用聚集(除([DIMENSION1] [DimensionField1] .Members,{[DIMENSION1] [DimensionField1] .UnknownMember,[DIMENSION1] [DimensionField1]。[全部]}),[措施] [A]) - 骨料(除非([DIMENSION1] [DimensionField1] .Members,{。。。[DIMENSION1] [DimensionField1] .UnknownMember,[DIMENSION1] [DimensionField1] [全部]}),[措施] [ b])幾乎可以工作,除非我在以後的選擇中不能使用維度 – feedthedogs

0
With Member [Measures].[CalcField] as [Measures].[a] - [Measures].[b] 

Select [Measures].[CalcField] 
on columns, 
[Dimension1].[DimensionField1].MEMBERS  
on rows 

from [cube]