2014-11-14 42 views
0

下面的腳本給出了我想要的結果。任意挑選一個維度以將成員添加到

這感覺就像一個黑客,因爲我已將自定義成員VALUEVALUE_MTD添加到層次結構[Customer].[Country]。我已經任意選擇了這個層次 - 只是沒有使用[Measures][Date].[Calendar],因爲它們已經在使用了。

是否有一個更標準的方法來返回完全相同的一組單元?

WITH 
    MEMBER [Customer].[Country].[VALUE] AS 
    Aggregate([Customer].[Country].[(All)].MEMBERS) 
    MEMBER [Customer].[Country].[VALUE_MTD] AS 
    Aggregate 
    (
     PeriodsToDate 
     (
     [Date].[Calendar].[Month] 
     ,[Date].[Calendar].CurrentMember 
    ) 
    ,[Customer].[Country].[VALUE] 
    ) 
SELECT 
    { 
    [Customer].[Country].[VALUE] 
    ,[Customer].[Country].[VALUE_MTD] 
    } ON 0 
,NON EMPTY 
     { 
     [Measures].[Internet Sales Amount] 
     ,[Measures].[Internet Order Quantity] 
     } 
    * 
     Descendants 
     (
     { 
      [Date].[Calendar].[Month].&[2007]&[12] 
      : 
      [Date].[Calendar].[Month].&[2008]&[01] 
     } 
     ,[Date].[Calendar].[Date] 
    ) ON 1 
FROM [Adventure Works]; 

回答

1

的標準方法被稱爲功利維度。如果你是谷歌這個詞,你會發現這種方法的幾個描述。 「實用程序維度」是指不引用任何數據,但只是爲了能夠將它們與所有其他維度交叉連接以進行計算而添加到該維度。你可以有一個或多個。

因此,在大多數情況下,物理上沒有任何維度。它僅用於計算成員。 (根據實現的不同,如果你想爲它們設置一些屬性,你可能會在物理上定義屬性成員,但是隻有默認的成員在事實表的星型模式中被引用,然後覆蓋屬性成員的值在計算腳本中)

這是典型的應用程序,如YTD,MTD,MAT(移動年總計,即在選定日期結束的數據的全年)或比較如增長與前一時期。

+0

好的 - 我想我們有一些時間計算,所以我可以使用它:明天再試。 – whytheq 2014-11-14 20:32:01