Share via


貨幣轉換 (Analysis Services - 多維度資料)

Microsoft SQL Server Analysis Services 會使用多維度運算式 (MDX) 指令碼提供的一組功能,在支援多重貨幣的 Cube 中提供貨幣轉換支援。

貨幣轉換詞彙

Analysis Services 會使用下列詞彙來描述貨幣轉換功能:

  • 樞紐貨幣
    在比率量值群組中輸入匯率來轉換的貨幣。

  • 本地貨幣
    用來存放交易的貨幣,轉換的量值以這些交易為基礎。

    本地貨幣的識別方式包括:

    • 與交易一併儲存在事實資料表中的貨幣識別碼,常見於銀行應用程式,其中交易本身即可識別交易貨幣。

    • 與維度資料表中之屬性相關聯的貨幣識別碼,此資料表會與事實資料表中的交易相關聯,常見於財務應用程式,其中會由位置或其他識別碼 (例如分公司) 識別相關聯之交易所使用的貨幣。

  • 報表貨幣
    交易從樞紐貨幣轉換而成的貨幣。

    [!附註]

    針對多對一貨幣轉換,樞紐貨幣和報表貨幣相同。

  • 貨幣維度
    定義下列設定的資料庫維度:

    • 維度的 Type 屬性會設定為 Currency。

    • 維度的一個屬性 (Attribute) 的 Type 屬性 (Property) 會設定為 CurrencyName。

      重要事項重要事項

      此屬性的值必須用於所有應該包含貨幣識別碼的資料行。

  • 比率量值群組
    Cube 中定義下列設定的量值群組:

    • 貨幣維度和比率量值群組之間存在一般維度關聯性。

    • 時間維度和比率量值群組之間存在一般維度關聯性。

    • Type 屬性也可以設定為 ExchangeRate。 雖然商務智慧精靈使用貨幣和時間維度之間的關聯性來識別可能的比率量值群組,如果將 Type 屬性設定為 ExchangeRate,用戶端應用程式就可以更容易地識別比率量值群組。

    • 一或多個量值,代表比率量值群組所包含的匯率。

  • 報表貨幣維度
    在定義貨幣轉換之後,由商務智慧精靈定義的維度,此維度包含該貨幣轉換的報表貨幣。 報表貨幣維度以貨幣維度的維度主資料表中的具名查詢為基礎,此具名查詢是在與比率量值群組相關聯之貨幣維度所依據的資料來源檢視中定義。 定義下列設定的維度:

    • 維度的 Type 屬性會設定為 Currency。

    • 維度的索引鍵屬性 (Attribute) 的 Type 屬性 (Property) 會設定為 CurrencyName。

    • 維度內一個屬性 (Attribute) 的 Type 屬性 (Property) 會設定為 CurrencyDestination,且繫結至此屬性 (Attribute) 的資料行包含貨幣識別碼,代表貨幣轉換的報表貨幣。

定義貨幣轉換

您可以使用商務智慧精靈來定義 Cube 的貨幣轉換功能,或使用 MDX 指令碼來手動定義貨幣轉換。

必要條件

您必須先定義至少一個貨幣維度、至少一個時間維度以及至少一個比率量值群組,才能使用商務智慧精靈來定義 Cube 中的貨幣轉換。 從這些物件中,商務智慧精靈可以擷取資料和中繼資料,這些資料用來建構報表貨幣維度與提供貨幣轉換功能所需的 MDX 指令碼。

決策

您必須先完成下列決策,商務智慧精靈才能建構報表貨幣維度與提供貨幣轉換功能所需的 MDX 指令碼:

  • 匯率方向

  • 轉換的成員

  • 轉換類型

  • 本地貨幣

  • 報表貨幣

匯率方向

比率量值群組包含量值,代表本地貨幣和樞紐貨幣 (通常稱為公司的貨幣) 之間的匯率。 匯率方向和轉換類型的組合,會決定在以商務智慧精靈產生的 MDX 指令碼所轉換之量值上執行的作業。 下表根據商務智慧精靈中可用的匯率方向選項和轉換方向,描述依據匯率方向和轉換類型而決定執行的作業。

匯率方向

多對一

一對多

多對多

n 個樞紐貨幣至 1 個範例貨幣

將待轉換的量值乘以本地貨幣的匯率量值,以轉換量值為樞紐貨幣。

將待轉換的量值除以報表貨幣的匯率量值,以轉換量值為報表貨幣。

將待轉換的量值乘以本地貨幣的匯率量值,以轉換量值為樞紐貨幣,再將已轉換的量值除以報表貨幣的匯率量值,以轉換量值為報表貨幣。

n 個範例貨幣至 1 個樞紐貨幣

將待轉換的量值除以本地貨幣的匯率量值,以轉換量值為樞紐貨幣。

將待轉換的量值乘以報表貨幣的匯率量值,以轉換量值為報表貨幣。

將待轉換的量值除以本地貨幣的匯率量值,以轉換量值為樞紐貨幣,再將已轉換的量值乘以報表貨幣的匯率量值,以轉換量值為報表貨幣。

請在商務智慧精靈的 [設定貨幣轉換選項] 頁面上選擇匯率方向。 如需有關設定轉換方向的詳細資訊,請參閱<設定貨幣轉換選項 (商務智慧精靈)>。

轉換的成員

您可以使用商務智慧精靈,從比率量值群組中指定使用哪些量值來轉換下列的值:

  • 其他量值群組中的量值。

  • 資料庫維度中帳戶屬性之屬性階層的成員。

  • 資料庫維度中帳戶屬性的屬性階層之成員所使用的帳戶類型。

商務智慧精靈在精靈產生的 MDX 指令碼內會使用這項資訊,來決定貨幣轉換計算的範圍。 如需有關指定貨幣轉換之成員的詳細資訊,請參閱<選取成員 (商務智慧精靈)>。

轉換類型

商務智慧精靈支援三種不同類型的貨幣轉換:

  • 一對多

    交易以樞紐貨幣儲存在事實資料表中,然後轉換為一或多種其他的報表貨幣。

    例如,樞紐貨幣可以設定為美元 (USD),而事實資料表將以 USD 儲存交易。 此轉換類型會將這些交易從樞紐貨幣轉換為指定的報表貨幣。 因此,交易可以儲存為指定的樞紐貨幣,並以指定的樞紐貨幣來檢視,或以貨幣轉換定義的報表貨幣維度中所指定的任何報表貨幣來檢視。

  • 多對一

    交易會以本地貨幣儲存在事實資料表中,然後轉換為樞紐貨幣。 樞紐貨幣會作為報表貨幣維度中所指定的唯一報表貨幣。

    例如,樞紐貨幣可以設定為美元 (USD),而事實資料表則以歐元 (EUR)、澳幣 (AUD) 和墨西哥披索 (MXN) 儲存交易。 此轉換類型會將這些交易從指定的本地貨幣轉換為樞紐貨幣。 因此,交易可以儲存為指定的本地貨幣,並以貨幣轉換定義的報表貨幣維度中所指定的報表貨幣來檢視。

  • 多對多

    交易會以本地貨幣儲存在事實資料表中。 此貨幣轉換功能會將這類交易轉換為樞紐貨幣,然後再轉換為一或多種其他的報表貨幣。

    例如,樞紐貨幣可以設定為美元 (USD),而事實資料表則以歐元 (EUR)、澳幣 (AUD) 和墨西哥披索 (MXN) 儲存交易。 此轉換類型會將這些交易從指定的本地貨幣轉換為樞紐貨幣,然後再次將已轉換的交易從樞紐貨幣轉換為指定的報表貨幣。 因此,交易可以儲存為指定的本地貨幣,並以指定的樞紐貨幣來檢視,或以貨幣轉換定義的報表貨幣維度中所指定的任何報表貨幣來檢視。

指定轉換類型可讓商務智慧精靈定義報表貨幣維度的具名查詢和維度結構,以及貨幣轉換定義之 MDX 指令碼的結構。

本地貨幣

如果您選擇以多對多或多對一轉換類型執行貨幣轉換,您需要指定如何識別本地貨幣,供商務智慧精靈產生的 MDX 指令碼執行貨幣轉換計算。 事實資料表中交易的本地貨幣有下列兩種識別方式:

  • 量值群組和貨幣維度之間存在一般維度關聯性。 例如,在 Adventure Works DW 範例 Analysis Services 資料庫中,網際網路銷售量值群組和貨幣維度之間存在一般維度關聯性。 該量值群組的事實資料表包含外部索引鍵資料行,此資料行參考該維度之維度資料表中的貨幣識別碼。 在上述情形中,您可以從量值群組所參考的貨幣維度中選取屬性,來識別該量值群組在事實資料表中交易的本地貨幣。 此情形常見於銀行應用程式,其中交易本身即會決定交易使用的貨幣。

  • 量值群組和貨幣維度之間,透過直接參考貨幣維度的另一個維度,存在參考維度關聯性。 例如,在 Adventure Works DW 範例 Analysis Services 資料庫中,財務報表量值群組和貨幣維度之間透過組織維度,存在參考維度關聯性。 該量值群組的事實資料表包含外部索引鍵資料行,此資料行參考組織維度之維度資料表中的成員。 而組織維度的維度資料表包含外部索引鍵資料行,此資料行參考貨幣維度之維度資料表中的貨幣識別碼。 此情形常見於財務報表應用程式,其中交易的位置或分公司會決定交易的貨幣。 在上述情形中,您可以從商務實體的維度中選取參考貨幣維度的屬性。

報表貨幣

如果您選擇以多對多或一對多轉換類型執行貨幣轉換,您需要指定報表貨幣,供商務智慧精靈產生的 MDX 指令碼執行貨幣轉換計算。 您可以指定比率量值群組相關之貨幣維度的所有成員,或從維度中選取個別的成員。

商務智慧精靈會根據使用選取之報表貨幣的貨幣維度,從該貨幣維度的維度資料表所建構的具名查詢來建立報表貨幣維度。

[!附註]

如果您選取一對多轉換類型,則也會建立報表貨幣維度。 此維度只包含一個成員代表樞紐貨幣,因為樞紐貨幣也作為一對多貨幣轉換的報表貨幣。

Cube 中定義的每一個貨幣轉換,均會定義個別的報表貨幣維度。 報表貨幣維度在建立之後可以變更名稱,但如果名稱變更,您也必須更新該貨幣轉換產生的 MDX 指令碼,以確保在參考報表貨幣維度時,指令碼命令可以使用正確的名稱。

定義多重貨幣轉換

利用商務智慧精靈,您可以依照商務智慧方案的需求,定義所需數量的貨幣轉換。 您可以覆寫現有的貨幣轉換,或將新的貨幣轉換附加至 Cube 的 MDX 指令碼。 單一 Cube 中定義的多重貨幣轉換,讓報表需求複雜的商務智慧應用程式更有彈性,例如財務報表應用程式,即支援多個不同的國際報表的轉換需求。

識別貨幣轉換

商務智慧精靈會將貨幣轉換的指令碼命令包覆在下列註解中,來識別每一種貨幣轉換:

//<Currency conversion>

...

[MDX statements for the currency conversion]

...

//</Currency conversion>

如果您變更或移除這些註解,商務智慧精靈將無法偵測貨幣轉換,所以您不應變更這些註解。

精靈也會將註解的中繼資料儲存在這些註解內,包括建立日期和時間、使用者以及轉換類型。 也不應變更這些註解,因為商務智慧精靈在顯示現有的貨幣轉換時會使用此中繼資料。

您可以視需要變更貨幣轉換中所包含的指令碼命令。 不過,如果覆寫貨幣轉換,將會遺失您的變更。