共用方式為


課程 6-1 - 定義匯出成員

適用於: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

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

若要建立匯出成員,請使用 Cube 設計工具 [ 計算] 索引卷標上的 [新增匯出成員] 命令。 您可以在任何維度內建立匯出成員,包括量值維度。 您也可以將匯出成員放在 [計算屬性] 對話框的顯示資料夾中。 如需詳細資訊,請參閱 計算多維度模型中的計算,以及 建立導出成員

在本主題的工作中,您會定義導出量值,讓用戶檢視因特網銷售、轉銷商銷售以及所有銷售的毛利率百分比和銷售比率。

定義計算以匯總實體量值

  1. 開啟 SQL Server Analysis Services 教學課程 Cube 的 Cube 設計工具,然後按兩下 [計算] 索引標籤。

    請注意 計算運算式 窗格和 [腳本召集人] 窗格中的預設 CALCULATE 命令。 此命令指定 Cube 中的量值應該根據其 AggregateFunction 屬性所指定的值進行匯總。 量值通常會加總,但也可能會以其他方式計算或匯總。

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

    Cube 設計師的 [計算] 索引標籤,

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

    新的窗體會出現在 計算表示式 窗格中,您可以在其中定義這個新匯出成員的屬性。 新成員也會出現在 [腳本召集人] 窗格中。

    下圖顯示當您按兩下 [新增匯出成員]時,計算表示式 窗格中出現的表單。

    [計算運算式] 窗格窗體

  3. 在 [Name] 方塊中,將匯出量值的名稱變更為 [總銷售額]

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

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

  4. 在 [計算] 索引標籤的 [計算工具] 窗格的 [元數據] 索引卷標上,展開 [量值],然後展開 [因特網銷售],以檢視 Internet Sales 量值群組的元數據。

    您可以將元數據元素從 [計算工具] 窗格拖曳到 [表達式] 方塊中,然後新增運算符和其他元素來建立多維度表達式 (MDX) 表達式。 或者,您也可以直接在 [表達式] 方塊中輸入 MDX 表達式。

    注意

    如果您無法在 [計算工具] 窗格中檢視任何元數據,請按兩下工具列上的 [重新連線]。 如果無法運作,您可能必須處理 Cube 或啟動 SQL Server Analysis Services 的實例。

  5. 將 [Internet Sales-Sales Amount] 從 [計算工具] 窗格的 [元數據] 索引卷標拖曳到 [計算表達式] 窗格中的 [表達式] 方塊中。

  6. 在 [運算式] 方塊中,於 [量值] 之後輸入加號 (+]。[因特網 Sales-Sales 金額]

  7. 在 [計算工具] 窗格的 [元數據] 索引卷標上,展開 [轉銷商銷售],然後將 [轉售商 Sales-Sales 金額] 拖曳到加號 窗格的 [表達式] 方塊中。

  8. 在 [格式字串 列表中,選取 [[貨幣]。

  9. 在 [非空白行為 列表中,選取 [Internet Sales-Sales Amount] 和 [轉銷商 Sales-Sales 金額] 複選框,然後按兩下 [確定]。

    您在 非空白行為 清單中指定的量值是用來解析 MDX 中的非空白查詢。 當您在 非空白行為 清單中指定一或多個量值時,如果所有指定的量值都是空的,SQL Server Analysis Services 會將匯出成員視為空白。 如果 非空白行為 屬性為空白,SQL Server Analysis Services 必須評估匯出成員本身,以判斷成員是否為空白。

    下圖顯示 計算表示式 窗格中填入您在先前步驟中指定的設定。

    [填入計算運算式] 窗格

  10. 在 [計算] 索引卷標的工具列上,按兩下 [腳本檢視],然後在 [計算運算式] 窗格中檢閱計算腳本。

    請注意,新的計算會新增至初始 CALCULATE 表達式;每個個別計算都會以分號分隔。 另請注意,計算腳本開頭會出現批注。 在計算腳本中新增計算腳本中的批註是很好的作法,可協助您和其他開發人員瞭解複雜的計算腳本。

  11. Calculate 之後,在計算腳本中新增一行; 命令,並在新增的計算腳本之前,將下列文字新增至腳本本身的行:

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

    下圖顯示計算文本,因為它們應該出現在教學課程的 計算表達式 窗格中。

    在 [計算運算式] 窗格中 腳本

  12. 在 [計算] 索引卷標的工具列上,按兩下 [窗體檢視] 確認已在 [腳本召集人] 窗格中選取 [總銷售額],然後按兩下 [[新增導出成員]

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

    [Measures].[Internet Sales-Total Product Cost] + [Measures].[Reseller Sales-Total Product Cost]  
    
  14. 在 [格式字串 列表中,選取 [[貨幣]

  15. 在 [非空白行為 列表中,選取 [因特網 Sales-Total 產品成本] 和 [轉銷商 Sales-Total 產品成本] 複選框,然後按兩下 [確定]

    您現在已定義兩個匯出成員,這兩個成員都會顯示在 [腳本召集人] 窗格中。 這些導出成員可供您稍後在計算腳本中定義的其他計算使用。 您可以選取 [腳本召集人] 窗格中的匯出成員,來檢視任何匯出成員的定義;匯出成員的定義會出現在窗體檢視 計算表達式 窗格中。 在部署這些物件之前,新定義的導出成員不會出現在 [計算工具] 窗格中 。 計算不需要處理。

定義毛利率計算

  1. 確認已在 [腳本召集人] 窗格中選取 [總產品成本]然後按兩下 [計算] 索引標籤工具列上的 [新增導出成員]。

  2. 在 [名稱] 方塊中,將這個新計算量值的名稱變更為 [因特網 GPM]

  3. 在 [表示式] 方塊中,建立下列 MDX 表達式:

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

  5. 在 [非空白行為 列表中,選取 [Internet Sales-Sales Amount] 的複選框,然後按兩下 [確定]

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

  7. 在 [名稱] 方塊中,將這個新計算量值的名稱變更為 [轉銷商 GPM]

  8. 在 [表示式] 方塊中,建立下列 MDX 表達式:

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

  10. 在 [非空白行為 列表中,選取 [Reseller Sales-Sales Amount] 複選框,然後按兩下 [確定]

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

  12. 在 [Name] 方塊中,將此匯出量值的名稱變更為 [總 GPM]

  13. 在 [表示式] 方塊中,建立下列 MDX 表達式:

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

    請注意,這個導出成員參考其他導出成員。 因為這個導出成員會在參考的導出成員之後計算,所以這是有效的導出成員。

  14. 在 [格式字串] 列表中,選取 [[百分比]

  15. 在 [非空白行為 列表中,選取 [Internet Sales-Sales Amount] 和 [轉銷商 Sales-Sales 金額] 複選框,然後按兩下 [確定]。

  16. 在 [計算] 索引卷標的工具列上,按兩下 [腳本檢視],並檢閱您剛新增至計算腳本的三項計算。

  17. 在計算腳本中緊接在 [Internet GPM] 計算之前新增一行,然後將下列文字新增至腳本本身的行:

    /* Calculations to calculate gross profit margin */  
    

    下圖顯示具有三項新計算的 [表示式] 窗格。

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

定義總計算的百分比

  1. 在 [計算] 索引標籤的工具列上,按兩下 [窗體檢視]

  2. 在 [腳本召集人] 窗格中,選取 [[總 GPM],然後按兩下 [計算] 索引卷標工具列上的 [新增導出成員]

    按兩下 [腳本召集人] 窗格中的最終匯出成員,然後按兩下 [新增匯出成員] 保證腳本結尾將輸入新的導出成員。 腳本會依出現在 [腳本召集人] 窗格中的順序執行。

  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. 在 [非空白行為 列表中,選取 [Internet Sales-Sales Amount] 的複選框,然後按兩下 [確定]

  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. 在 [非空白行為 列表中,選取 [Reseller Sales-Sales Amount] 複選框,然後按兩下 [確定]

  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. 在 [非空白行為 列表中,選取 [Internet Sales-Sales Amount] 和 [轉銷商 Sales-Sales 金額] 複選框,然後按兩下 [確定]。

  17. 在 [計算] 索引標籤的工具列上,按兩下 [腳本檢視],然後檢閱您剛才新增至計算腳本的三個計算。

  18. 在計算腳本中緊接著 [因特網銷售比率與所有產品] 計算之前新增一行,然後將下列文字新增至腳本本身的行:

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

    您現在已定義總計八個匯出成員,當您在 [表單] 檢視中時,[腳本召集人] 窗格中會顯示這些成員。

流覽新的導出成員

  1. 在 SQL Server Data Tools 的 [建置] 功能表上,單擊 [部署 Analysis Services 教學課程]。

  2. 部署順利完成時,切換至 [Browser] 索引卷標,按兩下 [重新連線]

  3. 按兩下 Excel 圖示,然後按下 [[啟用]

  4. [數據透視表字段清單] 窗格中,展開 [[值] 資料夾,以檢視 [量值] 維度中新的導出成員。

  5. 總銷售額 拖曳至 [值] 區域,然後檢閱結果。

    Internet Sales-Sales AmountReseller Sales-Sales Amount 量值從 Internet SalesReseller Sales 量值群組拖曳至 [值] 區域。

    請注意,總銷售額量值 量值是 因特網 Sales-Sales Amount 量值和 Reseller Sales-Sales Amount 量值的總和。

  6. 產品類別 使用者定義階層新增至 報表篩選 區域的篩選區域,然後依 Mountain Bikes篩選數據。

    請注意,總銷售額 量值 是根據 Internet Sales-Sales AmountReseller Sales-Sales Amount 量值計算 Mountain Bikes。

  7. Date.Calendar Date 使用者定義的階層新增至 [數據列卷標] 區域,然後檢閱結果。

    請注意,根據 Internet Sales-Sales AmountReseller Sales-Sales Amount measure for Mountain Bikes,計算每個日曆 年度 總銷售額 量值。

  8. 總 GPMInternet GPM,以及 轉銷商 GPM 量值區域,然後檢閱結果。

    請注意,轉銷商銷售毛利率明顯低於因特網上的銷售額,如下圖所示。

    顯示轉銷商銷售的數據窗格

  9. 將總銷售比率 新增至所有產品因特網銷售比率新增至所有產品,並將轉銷商銷售比率 所有產品 量值區域。

    請注意,山車與所有產品的銷售額比例隨著時間的因特網銷售而增加,但轉銷商銷售會隨著時間而減少。 另請注意,從銷售到所有產品的山車與所有產品的比率,從銷售到轉銷商的比例比透過因特網銷售的比率要低。

  10. 將篩選條件從 Mountain Bikes 變更為 Bikes,然後檢閱結果。

    請注意,所有透過轉銷商銷售的自行車毛利率都是負數,因為旅遊自行車和公路自行車正以虧損方式出售。

  11. 將篩選條件變更為 Accessories,然後檢閱結果。

    請注意,配件的銷售隨著時間而增加,但這些銷售只佔總銷售額的一小部分。 另請注意,配件銷售毛利率高於自行車。

課程中的下一個工作

定義具名集

另請參閱

計算
多維度模型中 計算
建立導出成員