2017-08-17 76 views
0

我不知道是否有在寫這樣的計算成員沒有更好的辦法:SSAS計算成員與幾個成員屬性

(
    [Measures].[Number of accounts] 
,[Account Status].[Account Status].&[Anonymous] 
,[Account Status].[Account Status].&[Closed] 
,[Account Status].[Account Status].&[Closed due to Fraud] 
,[Account Status].[Account Status].&[To be closed] 
,[Account Status].[Account Status].&[<unknown>] 
) 
+0

這肯定無法正常工作。我已將其重寫爲:([度量]。[帳戶數量],[帳戶狀態]。[帳戶狀態]。[匿名])+([度量]。[帳戶數量],[帳戶狀態]。 [帳戶狀態]。[關閉] ......等等還有更好的方法嗎? – KejP

+0

或者,也許有辦法寫一個會員,顯示除狀態A和狀態B以外的所有帳戶?希望這不是一個愚蠢的問題,但我是新的mdx :) – KejP

回答

2

這是一個tuple - 和定位立方體的一部分的非常有效的方式:

(
    [Measures].[Number of accounts] 
,[Account Status].[Account Status].&[Anonymous] 
,[Account Status].[Account Status].&[Closed] 
,[Account Status].[Account Status].&[Closed due to Fraud] 
,[Account Status].[Account Status].&[To be closed] 
,[Account Status].[Account Status].&[<unknown>] 
) 

...但它必須是多維數據集中的特定點 - 但你已經包括幾個成員s來自相同的層次結構[Account Status].[Account Status]所以這不是您的多維數據集中的單個點,因此會出錯。

這裏是一個有效的元組的例子:

WITH 
    MEMBER [exampleTuple] AS 
    (
     [Measures].[Internet Sales Amount] 
    ,[Date].[Calendar Year].&[2007] 
    ) 
SELECT 
    [exampleTuple] ON 0 
,{ 
    [Product].[Category].[Bikes] 
    ,[Product].[Category].[Clothing] 
    } ON 1 
FROM [Adventure Works]; 

所以這還給網絡銷售,但只有2007年全年:

enter image description here

如果我做的你做了什麼並添加說從年份層次結構中的另一個成員到元組,然後它會混淆,因爲不確定我指的是哪一個立方體 - 2006或2007!

WITH 
    MEMBER [exampleTuple] AS 
    (
     [Measures].[Internet Sales Amount] 
    ,[Date].[Calendar Year].&[2007] 
    ,[Date].[Calendar Year].&[2006] 
    ) 
SELECT 
    [exampleTuple] ON 0 
,{ 
    [Product].[Category].[Bikes] 
    ,[Product].[Category].[Clothing] 
    } ON 1 
FROM [Adventure Works]; 

給出了:這個詞

enter image description here

雙擊#錯誤告訴我們異常:

enter image description here

正是我們所期待的例外。

此異常周圍的一種方法是預先聚合同一層級的成員作爲單個部件使處理器知道立方體空間的到底是哪一部分去:

WITH 
    MEMBER [Date].[Calendar Year].[All].[2006+2007] AS 
    Aggregate({[Date].[Calendar Year].&[2007],[Date].[Calendar Year].&[2006]}) 
    MEMBER [exampleTuple] AS 
    (
     [Measures].[Internet Sales Amount] 
    ,[Date].[Calendar Year].[All].[2006+2007] 
    ) 
SELECT 
    [exampleTuple] ON 0 
,{ 
    [Product].[Category].[Bikes] 
    ,[Product].[Category].[Clothing] 
    } ON 1 
FROM [Adventure Works]; 

現在我們得到了什麼我們希望:

enter image description here

我們可以使用這個初始聚集做任何我們想做的 - 你提不包括一些成員 - 這是可能的:

WITH 
    MEMBER [Date].[Calendar Year].[All].[2006+2007] AS 
    Aggregate 
    (
     Except 
     (
     [Date].[Calendar Year].[Calendar Year].MEMBERS 
     ,{ 
      [Date].[Calendar Year].&[2007] 
     ,[Date].[Calendar Year].&[2006] 
     } 
    ) 
    ) 
    MEMBER [exampleTuple] AS 
    (
     [Measures].[Internet Sales Amount] 
    ,[Date].[Calendar Year].[All].[2006+2007] 
    ) 
SELECT 
    [exampleTuple] ON 0 
,{ 
    [Product].[Category].[Bikes] 
    ,[Product].[Category].[Clothing] 
    } ON 1 
FROM [Adventure Works]; 
0

你的意思是創建一個計算度量或計算維度成員?

你能夠使用EXCEPT或否定語法嗎? 。

喜歡的東西

(賬戶Measures.Number,除了{狀態A,狀態B}

或替換的單詞,除了用減號