定義導出成員

導出成員是根據 Cube 資料、算術運算子、數字和函數組合所定義的維度成員或量值群組成員。例如,您可以建立一個導出成員,計算 Cube 中兩個實體量值的總和。導出成員定義是儲存在 Cube 中,但其值是在查詢時計算。

若要建立導出成員,請在 Cube 設計師的 [計算] 索引標籤上使用 [新增導出成員] 命令。您可以在任何維度 (包括量值維度) 內建立導出成員,也可以在 [計算屬性] 對話方塊中的顯示資料夾內放置導出成員。如需詳細資訊,請參閱<計算>、<定義及設定計算>和<定義導出成員>。

在本主題的工作中,您要定義導出成員,讓使用者檢視網際網路銷售、轉售商銷售和所有銷售的毛利率百分比和銷售比率。

將計算定義為彙總實體量值

將計算定義為彙總實體量值

  1. 開啟 Analysis Services 教學課程 Cube 的 Cube 設計師,然後按一下 [計算] 索引標籤。

    請注意 [計算運算式] 窗格和 [指令碼組合管理] 窗格中的預設 CALCULATE 命令。這個命令會指定 Cube 中的量值,根據其 AggregateFunction 屬性所指定的值加以彙總。量值是以一般方式加總,不過也可以用其他方式計算或彙總。

    下圖顯示 Cube 設計師的 [計算] 索引標籤。

    Cube 設計師的計算索引標籤

  2. [計算] 索引標籤的工具列上,按一下 [新增導出成員]

    新的表單會出現在您定義這個新導出成員屬性的 [計算運算式] 窗格中。這個新成員也會出現在 [指令碼組合管理] 窗格中。

    下圖所顯示的是,當您按一下 [新增導出成員] 時,出現在 [計算運算式] 窗格的表單。

    計算運算式窗格表單

  3. [名稱] 方塊中,將導出量值的名稱,改為總銷售量

    如果導出成員的名稱包含空格,則必須以方括號括住導出成員的名稱。

    請注意,在 [父階層] 清單中,依預設,新的導出成員是在 [量值] 維度建立的。量值維度中的導出成員,也常被稱為導出量值。

  4. [計算] 索引標籤 [計算工具] 窗格之 [中繼資料] 索引標籤上的 [量值],再展開 [網際網路銷售] 檢視 [網際網路銷售] 量值群組的中繼資料。

    您可以將中繼資料元素,從 [計算工具] 窗格拖曳到 [運算式] 方塊中,再加上運算子和其他元素,來建立多維度運算式 (MDX) 運算式。或者,也可以在 [運算式] 方塊中,直接輸入 MDX 運算式。

ms166568.note(zh-tw,SQL.90).gif附註:
如果您無法在 [計算工具] 窗格檢視任何中繼資料,請在工具列上按一下 [重新連接]。如果此舉無效,可能得處理 Cube,或者啟動 Analysis Services 的執行個體。
  1. [網際網路銷售 - 銷售量][計算工具] 窗格的 [中繼資料] 索引標籤,拖曳到 [計算運算式] 窗格中的 [運算式] 方塊。

  2. [運算式] 方塊的 [量值].[網際網路銷售 - 銷售量] 後面,輸入一個加號 (+)。

  3. [計算工具] 窗格的 [中繼資料] 索引標籤中展開 [轉售商銷售],再將 [轉售商銷售 - 銷售量] 拖曳到 [計算運算式] 窗格中 [運算式] 方塊的加號 (+) 後面。

  4. [格式字串] 清單中,選取 [貨幣]

  5. [非空白行為] 清單中,勾選 [網際網路銷售 - 銷售量][轉售商銷售 - 銷售量] 的核取方塊,然後按一下 [確定]
    您在 [非空白行為] 清單所指定的量值,是用來解析 MDX 的 NON EMPTY 查詢。如果所有指定的量值都是空的,那麼當您在 [非空白行為] 清單中指定一或多個量值時,Analysis Services 會把導出成員視為空白。如果 [非空白行為] 屬性空白,Analysis Services 必須評估導出成員本身,來判定該成員是否為空白。
    下圖所顯示的是 [計算運算式] 窗格,其中含有您在前面步驟所指定的設定。

    擴展的計算運算式窗格

  6. [計算] 索引標籤的工具列上,按一下 [指令碼檢視],然後再檢閱 [計算運算式] 窗格中的計算指令碼。
    請注意,新的計算值會加入初始的 CALCULATE 運算式中;每個個別計算值都以分號區隔。同時也請注意,註解會出現在計算指令碼的開頭。在計算群組的計算指令碼中加入註解,有助於您自己和其他開發人員瞭解複雜的計算指令碼。

  7. 在計算指令碼的 [Calculate;] 命令後面以及新加入的計算指令碼前面加入一行,然後把下列文字加入指令碼的那一行:

    /* Calculations to aggregate Internet Sales and Reseller Sales measures */
    

    下圖所顯示的,是此時在教學課程中應該顯示在 [計算運算式] 窗格的計算指令碼。

    計算運算式窗格中的指令碼

  8. [計算] 索引標籤的工具列上按一下 [表單檢視],驗證 [指令碼組合管理] 窗格中是否有選取 [總銷售量],然後再按一下 [新增導出成員]

  9. 將這個新導出成員的名稱,改為總產品成本,然後在 [運算式] 方塊中建立下列運算式:

    [Measures].[Internet Sales-Total Product Cost] + [Measures].[Reseller Sales-Total Product Cost]
    
  10. [格式字串] 清單中,選取 [貨幣]

  11. [非空白行為] 清單中,勾選 [網際網路銷售 - 總產品成本][轉售商銷售 - 總產品成本] 的核取方塊,然後按一下 [確定]
    現在您已經定義了兩個導出成員,兩個都會出現在 [指令碼組合管理] 窗格中。這些導出成員可被您在計算指令碼後半段所定義的其他計算使用。您可以在 [指令碼組合管理] 窗格中,選取任何導出成員,檢視該導出成員的定義;該導出成員的定義會顯示在表單檢視的 [計算運算式] 窗格中。但是新定義的導出成員在部署之前,不會顯示在 [計算工具] 窗格中。計算並不需要處理。

定義毛利率計算

定義毛利率計算

  1. 驗證 [指令碼組合管理] 窗格中的 [總產品成本] 已經選取,然後在 [計算] 索引標籤的工具列上,按一下 [新增導出成員]

  2. [名稱] 方塊中,將新的導出量值名稱,改為網際網路毛利率

  3. [運算式] 方塊中,建立下列 MDX 運算式:

    ([Measures].[Internet Sales-Sales Amount] - 
    [Measures].[Internet Sales-Total Product Cost]) /
    [Measures].[Internet Sales-Sales Amount]
    
  4. [格式字串] 清單中,選取 [百分比]

  5. [非空白行為] 清單中,勾選 [網際網路銷售 - 銷售量] 的核取方塊,然後按一下 [確定]

  6. [計算] 索引標籤的工具列上,按一下 [新增導出成員]

  7. [名稱] 方塊中,將新的導出量值名稱,改為轉售商毛利率

  8. [運算式] 方塊中,建立下列 MDX 運算式:

    ([Measures].[Reseller Sales-Sales Amount] - 
    [Measures].[Reseller Sales-Total Product Cost]) /
    [Measures].[Reseller Sales-Sales Amount]
    
  9. [格式字串] 清單中,選取 [百分比]

  10. [非空白行為] 清單中,勾選 [轉售商銷售 - 銷售量] 的核取方塊,然後按一下 [確定]

  11. [計算] 索引標籤的工具列上,按一下 [新增導出成員]

  12. [名稱] 方塊中,將這個導出量值名稱改為總毛利率

  13. [運算式] 方塊中,建立下列 MDX 運算式:

    ([Measures].[Total Sales Amount] - 
    [Measures].[Total Product Cost]) /
    [Measures].[Total Sales Amount]
    

    請注意,這個導出成員參考其他導出成員。由於這個導出成員會在它所參考的導出成員之後導出,因此它是有效的導出成員。

  14. [格式字串] 清單中,選取 [百分比]

  15. [非空白行為] 清單中,勾選 [網際網路銷售 - 銷售量][轉售商銷售 - 銷售量] 的核取方塊,然後按一下 [確定]

  16. [計算] 索引標籤的工具列上,按一下 [指令碼檢視],然後檢閱您剛剛加入計算指令碼中的三個計算值。

  17. 緊接在計算指令碼的 [網際網路毛利率] 計算之前加入一行,然後把下列文字加入指令碼的那一行:

    /* Calculations to calculate gross profit margin */
    

    下圖所顯示的是含有三個新計算值的 [運算式] 窗格。

    計算運算式窗格中的新計算

定義總計算值的百分比

定義總計算值的百分比

  1. [計算] 索引標籤的工具列上,按一下 [表單檢視]

  2. [指令碼組合管理] 窗格中選取 [總毛利率],然後在 [計算] 索引標籤的工具列上,按一下 [新增導出成員]

    在按一下 [新增導出成員] 之前,先按一下 [指令碼組合管理] 窗格中的最後一個導出成員,可確保這個新的導出成員加在指令碼結尾。指令碼是以它們出現在 [指令碼組合管理] 窗格中的順序執行的。

  3. 將這個新導出成員的名稱,改為 [網際網路銷售與所有產品的比率]

  4. [運算式] 方塊中,輸入下列運算式:

    Case
        When IsEmpty( [Measures].[Internet Sales-Sales Amount] ) 
        Then 0
        Else ( [Product].[Product Categories].CurrentMember,
               [Measures].[Internet Sales-Sales Amount]) /
             ( [Product].[Product Categories].[(All)].[All], 
               [Measures].[Internet Sales-Sales Amount] )
        End
    

    這個 MDX 運算式會將比重計算為每項產品的總網際網路銷售值。Case 陳述式與 IS EMPTY 函數,可以共同確保產品沒有銷售量時,並不會發生除以零的錯誤。

  5. [格式字串] 清單中,選取 [百分比]

  6. [非空白行為] 清單中,勾選 [網際網路銷售 - 銷售量] 的核取方塊,然後按一下 [確定]

  7. [計算] 索引標籤的工具列上,按一下 [新增導出成員]

  8. 將這個導出成員的名稱,改為 [轉售商銷售與所有產品的比率]

  9. [運算式] 方塊中,輸入下列運算式:

    Case
        When IsEmpty( [Measures].[Reseller Sales-Sales Amount] ) 
        Then 0
        Else ( [Product].[Product Categories].CurrentMember,
               [Measures].[Reseller Sales-Sales Amount]) /
             ( [Product].[Product Categories].[(All)].[All], 
               [Measures].[Reseller Sales-Sales Amount] )
        End
    
  10. [格式字串] 清單中,選取 [百分比]

  11. [非空白行為] 清單中,勾選 [轉售商銷售 - 銷售量] 的核取方塊,然後按一下 [確定]

  12. [計算] 索引標籤的工具列上,按一下 [新增導出成員]

  13. 將這個導出成員的名稱,改為 [總銷售與所有產品的比率]

  14. [運算式] 方塊中,輸入下列運算式:

    Case
        When IsEmpty( [Measures].[Total Sales Amount] ) 
        Then 0
        Else ( [Product].[Product Categories].CurrentMember,
               [Measures].[Total Sales Amount]) /
             ( [Product].[Product Categories].[(All)].[All], 
               [Measures].[Total Sales Amount] )
        End
    
  15. [格式字串] 清單中,選取 [百分比]

  16. [非空白行為] 清單中,勾選 [網際網路銷售 - 銷售量][轉售商銷售 - 銷售量] 的核取方塊,然後按一下 [確定]

  17. [計算] 索引標籤的工具列上,按一下 [指令碼檢視],然後檢閱您剛剛加入計算指令碼中的三個計算值。

  18. 緊接在計算指令碼的 [網際網路銷售與所有產品的比率] 計算之前加入一行,然後把下列文字加入指令碼的那一行:

    /* Calculations to calculate percentage of product to total product sales */
    

    您總共定義了八個導出成員,當您在表單檢視時,它們都會出現在 [指令碼組合管理] 窗格中。

瀏覽新的導出成員

瀏覽新的導出成員

  1. 在 Business Intelligence Development Studio 的 [建立] 功能表上,按一下 [部署 Analysis Services 教學課程]

  2. 當您順利部署完畢之後,請切換到 [瀏覽器] 索引標籤,按一下 [重新連接],然後從 [資料] 窗格移除所有的階層和量值。

  3. [中繼資料] 窗格中,展開 [量值] 來檢視量值維度中的新導出成員。

  4. [總銷售量][網際網路銷售 - 銷售量][轉售商銷售 - 銷售量] 量值加入資料區域中,然後檢閱結果。

    請注意,[總銷售量] 量值是 [網際網路銷售 - 銷售量] 量值和 [轉售商銷售 - 銷售量] 量值的總和。

  5. [產品類別目錄] 使用者自訂階層加入至 [資料] 窗格的篩選區域,然後再依 [越野車] 篩選資料。

    請注意,[總銷售量] 量值是根據 [越野車][網際網路銷售 - 銷售量][轉售商銷售 - 銷售量] 量值,針對產品銷售的 [越野車] 類別目錄而計算的。

  6. [日期.日曆時間] 使用者自訂階層加入至資料列區域,然後檢閱結果。

    請注意,每個日曆年的 [總銷售量] 量值,是根據 [越野車][網際網路銷售 - 銷售量][轉售商銷售 - 銷售量] 量值,針對產品銷售的 [越野車] 類別目錄而計算的。

  7. [總毛利率][網際網路毛利率][轉售商毛利率] 量值加入資料區域中,然後檢閱結果。

    請注意,轉售商銷售的毛利率遠低於透過網際網路的銷售。同時也請注意,越野車銷售的毛利率正逐漸上升中,如下圖所示。

    顯示轉售商銷售額的資料窗格

  8. [總銷售與所有產品的比率][網際網路銷售與所有產品的比率] 以及 [轉售商銷售與所有產品的比率] 量值加入資料區域中。

    請注意,越野車銷售與所有產品的比率,在網際網路銷售方面正逐漸提升,不過在轉售商銷售方面卻有下滑趨勢。另外也請注意,越野車銷售與所有產品的比率,透過轉售商的銷售,低於透過網際網路的銷售。

  9. 將篩選器從 [越野車] 改為 [自行車],然後檢閱結果。

    請注意,透過轉售商銷售的所有自行車毛利率是負值,因為休旅車和公路自行車是虧本出售。

  10. 將篩選器改為 [配件],然後檢閱結果。

    請注意,配件的銷售量逐漸上升中,但這些銷售在總銷售量中只佔一小部分。另外也請注意,配件銷售的毛利率高於自行車的毛利率。

  11. 依序展開 [CY 2004][H2 CY 2004][Q3 CY 2004]

    請注意,這個 Cube 在 2004 年 6 月之後已經沒有轉售商銷售了,同時,在 2004 年 7 月之後也沒有網際網路銷售。這些銷售值尚未從來源系統加入 Adventure Works DW 資料庫中。

本課程的下一項工作

定義命名集

請參閱

其他資源

計算
定義及設定計算
定義導出成員

說明及資訊

取得 SQL Server 2005 協助