Analysis Services 中的貨幣轉換
適用於: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium
Analysis Services 使用多維度表示式 (MDX) 腳本引導的功能組合,在支援多種貨幣的數據模型中提供貨幣轉換支援。
貨幣轉換術語
下列術語用來描述貨幣轉換功能:
樞紐貨幣 - 這是匯率量值群組中輸入匯率的貨幣。
本機貨幣 - 這是用來儲存要轉換之量值的貨幣。
本機貨幣可以透過下列其中一項來識別:
與銀行應用程式一樣,與與交易一起儲存的事實數據表中的貨幣標識碼,與銀行應用程式通常一樣,其中交易本身會識別該交易所使用的貨幣。
與維度數據表中屬性相關聯的貨幣標識符,然後與事實數據表中的交易相關聯,在財務應用程式中,位置或其他標識碼,例如子公司,會識別關聯交易所使用的貨幣。
報告貨幣 - 這是交易從樞紐貨幣轉換的貨幣。
注意
對於多對一貨幣轉換,樞紐貨幣和報告貨幣都相同。
貨幣維度 - 以下列設定定義的資料庫維度:
維度的 Type 屬性會設定為 Currency。
維度一個屬性的 Type 屬性會設定為 CurrencyName。
此屬性的值必須用於應該包含貨幣標識碼的所有數據行中。
Rate 量值群組 - Cube 中的量值群組,以下列設定定義:
貨幣維度與速率量值群組之間存在一般維度關聯性。
時間維度與速率量值群組之間存在一般維度關聯性。
或者,Type 屬性會設定為 ExchangeRate。 雖然商業智慧精靈會使用與貨幣和時間維度的關聯性來識別可能速率量值群組,但將 Type 屬性設定為 ExchangeRate 可讓用戶端應用程式更輕鬆地識別速率量值群組。
一或多個量值,代表利率量值群組所包含的匯率。
報表貨幣維度 - 這是定義貨幣轉換之後商業智慧精靈所定義的維度,其中包含該貨幣轉換的報告貨幣。 報表貨幣維度是以具名查詢為基礎,其定義於數據源檢視中,而與利率量值群組相關聯的貨幣維度是以該維度為基礎,來自貨幣維度的維度主數據表。 維度是使用下列設定來定義:
維度的 Type 屬性會設定為 Currency。
維度索引鍵屬性的 Type 屬性會設定為 CurrencyName。
維度內一個屬性的 Type 屬性會設定為 CurrencyDestination,而系結至 屬性的數據行包含貨幣標識符,代表貨幣轉換的報告貨幣。
定義貨幣轉換
您可以使用商業智慧精靈來定義貨幣轉換功能,或使用 MDX 腳本手動定義貨幣轉換。
先決條件
您必須先定義至少一個貨幣維度、至少一個時間維度,以及至少一個速率量值群組,才能使用商業智慧精靈來定義貨幣轉換。 從這些物件中,商業智慧精靈可以擷取用來建構報表貨幣維度的數據和元數據,以及提供貨幣轉換功能所需的 MDX 腳本。
決定
您需要先做出下列決策,商業智慧精靈才能建構提供貨幣轉換功能所需的報告貨幣維度和 MDX 腳本:
匯率方向
已轉換的成員
轉換類型
當地貨幣
報告貨幣
匯率方向
利率量值群組包含代表本地貨幣與樞紐貨幣之間匯率的量值(通常稱為公司貨幣)。 匯率方向和轉換類型的組合會決定使用商業智慧精靈產生的 MDX 腳本所要轉換之量值上執行的作業。 下表說明根據匯率方向和轉換類型,根據商業智慧精靈中可用的匯率方向選項和轉換方向來執行的作業。
多對一 | 一對多 | 多對多 | |
---|---|---|---|
n 個樞紐貨幣至 1 個範例貨幣 | 將量值乘以以當地貨幣的匯率量值來轉換,以便將量值轉換成樞紐貨幣。 | 將量值除以報表貨幣的匯率量值來轉換,以便將量值轉換成報告貨幣。 | 將量值乘以以本地貨幣的匯率量值來轉換,以便將量值轉換成樞紐貨幣,然後將轉換后的量值除以報表貨幣的匯率量值,以便將量值轉換成報表貨幣。 |
n 個範例貨幣至 1 個樞紐貨幣 | 將量值除以以本地貨幣的匯率量值來轉換,以便將量值轉換成樞紐貨幣。 | 將量值乘以報表貨幣的匯率量值,以將量值轉換成報表貨幣。 | 除以以本地貨幣的匯率量值來轉換量值,以將量值轉換成樞紐貨幣,然後將轉換后的量值乘以報表貨幣的匯率量值,以便將量值轉換成報告貨幣。 |
您可以在 [商業智慧精靈] 的 [設定貨幣轉換 選項] 頁面上,選擇匯率方向。 如需設定轉換方向的詳細資訊,請參閱 設定貨幣轉換選項(商業智慧精靈)。
已轉換的成員
您可以使用商業智慧精靈來指定速率量值群組中用來轉換值的量值:
其他量值群組中的量值。
資料庫維度中帳戶屬性的屬性階層成員。
帳戶類型,由資料庫維度中帳戶屬性的屬性階層成員使用。
商業智慧精靈會在精靈所產生的 MDX 腳本內使用此資訊來判斷貨幣轉換計算的範圍。 如需指定貨幣轉換成員的詳細資訊,請參閱 選取成員(商業智慧精靈)。
轉換類型
商業智慧精靈支援三種不同類型的貨幣轉換:
一對多
交易會以樞紐貨幣儲存在事實數據表中,然後轉換成一或多個其他報告貨幣。
例如,樞紐貨幣可以設定為美元(美元),而事實數據表會以美元儲存交易。 此轉換類型會將這些交易從樞紐貨幣轉換成指定的報告貨幣。 結果是交易可以儲存在指定的樞紐貨幣中,並以指定的樞紐貨幣或針對貨幣轉換所定義之報表貨幣維度中指定的任何報表貨幣來檢視。
多對一
交易會以當地貨幣儲存在事實數據表中,然後轉換成樞紐貨幣。 樞紐貨幣可作為報表貨幣維度中唯一指定的報告貨幣。
例如,樞紐貨幣可以設定為美元(美元),而事實數據表會將交易以歐元(歐元)、澳元(澳元)和墨西哥比索(美聯)儲存。 此轉換類型會將這些交易從指定的當地貨幣轉換為樞紐貨幣。 結果是,交易可以儲存在指定的本地貨幣中,並以樞紐貨幣檢視,其指定於針對貨幣轉換所定義的報表貨幣維度中。
多對多
交易會以當地貨幣儲存在事實數據表中。 貨幣轉換功能會將這類交易轉換成樞紐貨幣,然後轉換成一或多個其他報告貨幣。
例如,樞紐貨幣可以設定為美元(美元),而事實數據表會將交易以歐元(歐元)、澳元(澳元)和墨西哥比索(美聯)儲存。 此轉換類型會將這些交易從指定的本地貨幣轉換成樞紐貨幣,然後轉換的交易會再次從樞紐貨幣轉換為指定的報告貨幣。 結果是交易可以儲存在指定的當地貨幣中,並以指定的樞紐貨幣或針對貨幣轉換所定義之報表貨幣維度中指定的任何報表貨幣來檢視。
指定轉換類型可讓商業智慧精靈定義報表貨幣維度的具名查詢和維度結構,以及針對貨幣轉換定義的 MDX 腳本結構。
當地貨幣
如果您選擇貨幣轉換的多對多或多對一轉換類型,您必須指定如何識別商業智慧精靈所產生的 MDX 腳本執行貨幣轉換計算的本機貨幣。 事實數據表中交易的本機貨幣可以用下列兩種方式之一來識別:
量值群組包含與貨幣維度的一般維度關聯性。 例如,在 Adventure Works DW 多維度 2012 範例 SQL Server Analysis Services 資料庫中,Internet Sales 量值群組與 Currency 維度有一般維度關聯性。 該量值群組的事實數據表包含外鍵數據行,該數據行會參考該維度之維度數據表中的貨幣標識符。 在此情況下,您可以從量值群組所參考的貨幣維度中選取 屬性,以識別該量值群組事實數據表中交易的本機貨幣。 這種情況最常發生在銀行應用程式中,其中交易本身會決定交易中使用的貨幣。
量值群組包含與貨幣維度的參考維度關聯性,透過直接參考貨幣維度的另一個維度。 例如,在 Adventure Works DW 多維度 2012 範例 SQL Server Analysis Services 資料庫中,「財務報告」量值群組透過 [組織] 維度,具有與 Currency 維度的參考維度關聯性。 該量值群組的事實數據表包含外鍵數據行,該數據行會參考組織維度維度之維度數據表中的成員。 接著,組織維度的維度數據表會包含外鍵數據行,該數據行會參考 Currency 維度維度之維度數據表中的貨幣標識碼。 這種情況最常發生在財務報告應用程式中,其中交易的位置或子公司會決定交易的貨幣。 在此情況下,您可以從商務實體的維度選取參考貨幣維度的屬性。
報告貨幣
如果您選擇貨幣轉換的多對多或一對多轉換類型,您必須指定商業智慧精靈所產生的 MDX 腳本執行貨幣轉換計算的報告貨幣。 您可以指定與速率量值群組相關的貨幣維度的所有成員,或從維度中選取個別成員。
商業智慧精靈會根據使用所選報表貨幣之貨幣維度從維度數據表建構的具名查詢,建立報表貨幣維度。
注意
如果您選取一對多轉換類型,也會建立報告貨幣維度。 維度只包含代表樞紐貨幣的一個成員,因為樞紐貨幣也會當做一對多貨幣轉換的報告貨幣使用。
每個定義的貨幣轉換都會定義個別的報告貨幣維度。 您可以在建立之後變更報表貨幣維度的名稱,但如果這樣做,您也必須更新針對該貨幣轉換產生的 MDX 腳本,以確保參考報表貨幣維度時腳本命令會使用正確的名稱。
定義多個貨幣轉換
使用商業智慧精靈,您可以定義商業智慧解決方案所需的貨幣轉換數目。 您可以覆寫現有的貨幣轉換,或將新的貨幣轉換附加至 MDX 腳本。 多個貨幣轉換在具有複雜報告需求的商業智慧應用程式中提供彈性,例如支援多個個別國際報告轉換需求的財務報告應用程式。
使用商業智慧精靈在多維度模型中的貨幣轉換
商業智慧精靈會藉由在下列批註中框架貨幣轉換的腳本命令來識別每個貨幣轉換:
//<Currency conversion>
...
[MDX statements for the currency conversion]
...
//</Currency conversion>
如果您變更或移除這些批注,商業智慧精靈無法偵測貨幣轉換,因此您不應該變更這些批注。
精靈也會將這些批注中的元數據儲存在這些批注中,包括建立日期和時間、使用者和轉換類型。 這些批注也不應該變更,因為商業智慧精靈會在顯示現有的貨幣轉換時使用此元數據。
您可以視需要變更貨幣轉換中包含的腳稿命令。 不過,如果您覆寫貨幣轉換,您的變更將會遺失。
另請參閱
Analysis Services 的