在資料來源檢視中定義具名計算 (Analysis Services)
適用於: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium
具名計算是以計算結果列表示的 SQL 運算式。 此表達式會顯示並做為數據表中的數據行。 具名計算可讓您擴充數據源檢視中現有數據表或檢視的關係架構,而不需要修改基礎數據源中的數據表或檢視表。 請考慮下列範例:
建立衍生自事實數據表中多個數據行的單一具名計算(例如,藉由將稅率乘以銷售價格來建立稅額)。
建構維度成員的使用者易記名稱。
作為查詢效能增強功能,請在 DSV 中建立具名計算,而不是在 Cube 中建立匯出成員。 具名計算會在處理期間計算,而導出成員則是在查詢時計算。
建立具名計算
注意
您無法將具名計算新增至具名查詢,也無法將具名查詢基底放在包含具名計算的數據表上。
當您建立具名計算時,您可以指定名稱、SQL 運算式,以及選擇性地指定計算的描述。 SQL 運算式可以參考數據源檢視中的其他數據表。 定義具名計算之後,具名計算中的表達式會傳送至數據源的提供者,並驗證為下列 SQL 語句,其中 <Expression>
包含定義具名計算的表達式。
SELECT
<Table Name in Data Source>.*,
<Expression> AS <Column Name>
FROM
<Table Name in Data Source> AS <Table Name in Data Source View>
數據行的數據類型取決於表達式所傳回之純量值的數據類型。 如果提供者在表達式中找不到任何錯誤,數據行就會加入數據表中。
表達式中參考的數據行不應限定,或只應以數據表名稱限定。 例如,若要參照數據表中的 SaleAmount 資料行,SaleAmount
或 Sales.SaleAmount
有效,但 dbo.Sales.SaleAmount
會產生錯誤。
表達式不會自動括在括弧之間。 因此,如果表達式,例如 SELECT 語句,需要括弧,您必須在 [Expression] 方塊中輸入括號。 例如,只有在您輸入括弧時,下列表達式才有效。
(SELECT Description FROM Categories WHERE Categories.CategoryID = CategoryID)
新增或編輯具名計算
在 SQL Server Data Tools 中,開啟專案或連接到包含您要在其中定義具名計算之數據源檢視的資料庫。
在 [方案總管] 中,展開 [數據源檢視] 資料夾,然後按兩下數據源檢視。
以滑鼠右鍵按下您想要在 [資料表] 或 [圖表] 窗格中定義具名計算的數據表,然後按兩下 [新增具名計算]。 請務必以滑鼠右鍵按下數據表名稱,而不是在屬性上按下滑鼠右鍵。 功能表看起來應該如下所示:
注意
若要尋找數據表或檢視表,您可以單擊 [數據源檢視] 功能表,或以滑鼠右鍵單擊 [數據表] 或 [圖表] 窗格的開啟區域,來使用 [尋找數據表] 選項。
在 [建立具名計算] 對話框中,執行下列動作:
在 [數據行名稱] 文字框中,輸入新數據行的名稱。
在 [描述] 文字框中,輸入新數據行的描述。
在 [表示式] 文本框中,輸入運算式,在適用於數據提供者的 SQL 方言中產生新數據行的內容。
按下 [確定] 。
具名計算數據行會顯示為數據源檢視表中的最後一個數據行。 計算機符號表示數據行包含具名計算。
刪除具名計算
當您嘗試刪除具名計算時,系統會提示您輸入專案或資料庫中定義的物件清單,而刪除將會失效。 在刪除計算之前,請先仔細檢閱清單。