通貨換算の処理 (SSAS)
Microsoft SQL Server 2005 Analysis Services (SSAS) では、多次元式 (MDX) スクリプトによって実行される機能の組み合わせを使用して、複数の通貨をサポートしているキューブに通貨換算のサポートが提供されています。
通貨換算に関する用語
Analysis Services では、通貨換算機能について説明するために次の用語を使用します。
ピボットされた通貨
レート メジャー グループで換算レートが入力される通貨です。
現地の通貨
変換するメジャーの基となるトランザクションを格納するために使用する通貨です。
現地の通貨は次のどちらかで識別できます。
- トランザクションと共に格納されるファクト テーブル内の通貨識別子。これは、トランザクション自体がそのトランザクションに使用される通貨を識別する銀行取引アプリケーションなどで一般的です。
- ディメンション テーブルの属性に関連付けられ、その後ファクト テーブルのトランザクションに関連付けられる通貨識別子。これは、場所や子会社などの他の識別子が、関連付けられているトランザクションに使用する通貨を識別する財務アプリケーションなどで一般的です。
レポートの通貨
ピボットされた通貨からトランザクションが変換される通貨です。
メモ : |
---|
多対一の通貨換算では、ピボットされた通貨とレポートの通貨は同じになります。 |
通貨ディメンション
次の設定で定義されているデータベース ディメンションです。
- ディメンションの Type プロパティが Currency に設定されている。
- ディメンションの 1 つの属性の Type プロパティが CurrencyName に設定されている。
重要 : この属性値を、通貨識別子を含むすべての列で使用する必要があります。
レート メジャー グループ
次の設定を使用して定義されている、キューブ内のメジャー グループです。
- 通貨ディメンションとレート メジャー グループ間に標準のディメンション リレーションシップが存在する。
- 時間ディメンションとレート メジャー グループ間に標準のディメンション リレーションシップが存在する。
- 必要に応じて、Type プロパティが ExchangeRate に設定される。ビジネス インテリジェンス ウィザードでは通貨ディメンションおよび時間ディメンションとのリレーションシップを使用して、考えられるレート メジャー グループが識別されますが、Type プロパティを ExchangeRate に設定すると、クライアント アプリケーションでより簡単にレート メジャー グループを識別できるようになります。
- レート メジャー グループに含まれている換算レートを表す 1 つまたは複数のメジャー。
レポートの通貨ディメンション
通貨換算の定義後にビジネス インテリジェンス ウィザードによって定義されるディメンションで、その通貨換算用のレポートの通貨を含んでいます。レポートの通貨ディメンションは、通貨ディメンションのディメンション メイン テーブルから名前付きクエリに基づいて作成され、レート メジャー グループに関連付けられている通貨ディメンションの基になっているデータ ソース ビューで定義されます。ディメンションは、次の設定を使用して定義されます。
- ディメンションの Type プロパティが Currency に設定されている。
- ディメンションのキー属性の Type プロパティが CurrencyName に設定されている。
- ディメンション内の 1 つの属性の Type プロパティは CurrencyDestination に設定されており、属性にバインドされている列には、通貨換算用のレポートの通貨を表す通貨識別子が含まれている。
通貨換算の定義
ビジネス インテリジェンス ウィザードを使用すると、キューブの通貨換算機能を定義できます。また、MDX スクリプトを使用して通貨換算を手動で定義することもできます。
必要条件
ビジネス インテリジェンス ウィザードを使用してキューブに通貨換算を定義するには、少なくとも 1 つの通貨ディメンション、少なくとも 1 つの時間ディメンション、および少なくとも 1 つのレート メジャー グループを定義する必要があります。ビジネス インテリジェンス ウィザードでは、レポートの通貨ディメンションおよび MDX スクリプトの作成に使用するデータとメタデータをこれらのオブジェクトから取得し、通貨換算機能を提供できます。
決定事項
ビジネス インテリジェンス ウィザードでレポートの通貨ディメンションと MDX スクリプトを作成し、通貨換算機能を提供するには、次の項目を決定する必要があります。
- 換算レートの方向
- 換算されるメンバ
- 換算の種類
- 現地の通貨
- レポートの通貨
換算レートの方向
レート メジャー グループは、現地の通貨とピボットされた通貨 (通常は会社で使用する通貨と呼ばれます) 間の換算レートを表すメジャーを含んでいます。ビジネス インテリジェント ウィザードで生成した MDX スクリプトによって換算されるメジャーに対する操作は、換算レートの方向と換算の種類の組み合わせによって決まります。次の表では、換算レートの方向と換算の種類に応じて実行される操作について説明します。これらの操作は、ビジネス インテリジェンス ウィザードで使用可能な換算レートの方向オプションと換算の方向に基づいています。
換算レートの方向 |
多対一 |
一対多 |
多対多 |
n 個のピボットされた通貨対 1 つのサンプル通貨 |
メジャーをピボットされた通貨に換算するには、換算するメジャーを現地の通貨の換算レート メジャーと掛け合わせます。 |
メジャーをレポートの通貨に換算するには、換算するメジャーをレポートの通貨の換算レート メジャーで割ります。 |
メジャーをピボットされた通貨に換算するには、換算するメジャーを現地の通貨の換算レート メジャーと掛け合わせ、メジャーをレポートの通貨に換算するには、換算するメジャーをレポートの通貨の換算レート メジャーで割ります。 |
n 個のサンプル通貨対 1 つのピボットされた通貨 |
メジャーをピボットされた通貨に換算するには、換算するメジャーを現地の通貨の換算レート メジャーで割ります。 |
メジャーをレポートの通貨に換算するには、換算するメジャーをレポートの通貨の換算レート メジャーと掛け合わせます。 |
メジャーをピボットされた通貨に換算するには、換算するメジャーを現地の通貨の換算レート メジャーで割り、メジャーをレポートの通貨に換算するには、換算するメジャーをレポートの通貨の換算レート メジャーと掛け合わせます。 |
換算レートの方向は、ビジネス インテリジェンス ウィザードの [通貨換算オプションの設定] ページで選択します。換算方向の設定の詳細については、「[通貨換算オプションの設定] (ビジネス インテリジェンス ウィザード) (SSAS)」を参照してください。
換算されるメンバ
ビジネス インテリジェンス ウィザードを使用すると、値の換算にレート メジャー グループのどのメジャーを使用するかを指定できます。
- 他のメジャー グループのメジャー
- データベース ディメンションの勘定科目属性用の属性階層のメンバ
- データベース ディメンションの勘定科目属性用の属性階層のメンバが使用する勘定科目の種類
ビジネス インテリジェンス ウィザードでは、ウィザードが生成した MDX スクリプト内でこの情報を使用して、通貨換算の計算の範囲を決定します。 通貨換算用のメンバの指定方法については、「[メンバの選択] (ビジネス インテリジェンス ウィザード) (SSAS)」を参照してください。
換算の種類
ビジネス インテリジェンス ウィザードでは、次の 3 種類の通貨換算がサポートされています。
- 一対多
トランザクションはピボットされた通貨のファクト テーブルに格納され、1 つまたは複数の他のレポートの通貨に換算されます。
たとえば、ピボットされた通貨を米ドル (USD) に設定し、ファクト テーブルにトランザクションを USD で格納します。この種類の換算では、これらのトランザクションが、ピボットされた通貨から指定のレポートの通貨に換算されます。その結果、トランザクションは、指定のピボットされた通貨で格納でき、ピボットされた通貨、または通貨換算用に定義されているレポートの通貨ディメンションに指定されているレポートの通貨のいずれかで表示できます。 - 多対一
トランザクションは、現地の通貨でファクト テーブルに格納され、ピボットされた通貨に換算されます。ピボットされた通貨は、レポートの通貨ディメンションに指定されている唯一のレポートの通貨として機能します。
たとえば、ピボットされた通貨を米ドル (USD) に設定し、ファクト テーブルにはトランザクションをユーロ (EUR)、オーストラリア ドル (AUD)、およびメキシコ ペソ (MXN) で格納します。この種類の換算では、これらのトランザクションは、指定されている現地の通貨から、ピボットされた通貨に換算されます。その結果、トランザクションは、指定されている現地の通貨で格納でき、通貨換算用に定義されているレポートの通貨ディメンションに指定されている、ピボットされた通貨で表示できます。 - 多対多
トランザクションは現地の通貨でファクト テーブルに格納されます。このようなトランザクションは、通貨換算機能によって、ピボットされた通貨に換算され、その後 1 つまたは複数の他のレポートの通貨に換算されます。
たとえば、ピボットされた通貨を米ドル (USD) に設定し、ファクト テーブルにはトランザクションをユーロ (EUR)、オーストラリア ドル (AUD)、およびメキシコ ペソ (MXN) で格納します。この種類の換算では、これらのトランザクションは、指定されている現地の通貨から、ピボットされた通貨に換算され、換算されたトランザクションは、ピボットされた通貨から、指定されているレポートの通貨に再び換算されます。その結果、トランザクションは、指定されている現地の通貨で格納でき、指定のピボットされた通貨、または通貨換算用に定義されているレポートの通貨ディメンションに指定されているレポートの通貨のいずれかで表示できます。
変換の種類を指定すると、ビジネス インテリジェンス ウィザードでは、レポートの通貨ディメンションの名前付きクエリおよびディメンション構造に加えて、通貨換算用に定義する MDX スクリプトの構造を定義できるようになります。
現地の通貨
通貨換算に多対多または多対一の種類の換算を選択する場合は、ビジネス インテリジェンス ウィザードで生成した MDX スクリプトが通貨換算の計算を実行するときの現地の通貨を識別する方法を指定する必要があります。ファクト テーブル内のトランザクションの現地の通貨は、次の 2 種類の方法のどちらかで識別できます。
- メジャー グループには、通貨ディメンションに対する標準のディメンション リレーションシップが含まれています。たとえば、Adventure Works DW のサンプルの Analysis Services データベースでは、"インターネット販売" メジャー グループに "通貨" ディメンションに対する通常のディメンション リレーションシップが含まれています。そのメジャー グループのファクト テーブルには外部キー列が含まれており、この列はそのディメンションのディメンション テーブル内の通貨識別子を参照します。この場合は、メジャー グループによって参照されている通貨ディメンションから属性を選択し、そのメジャー グループのファクト テーブル内のトランザクションの現地の通貨を識別できます。この状況は、トランザクション自体がトランザクションで使用される通貨を判断する銀行取引アプリケーションなどで最もよく発生します。
- メジャー グループには、通貨のディメンションを直接参照する別のディメンションを経由した、通貨ディメンションとの参照ディメンション リレーションシップが含まれています。たとえば、Adventure Works DW のサンプルの Analysis Services データベースでは、"財務報告" メジャー グループには、"組織" ディメンションを経由した "通貨" ディメンションに対する参照ディメンション リレーションシップが含まれています。そのメジャー グループのファクト テーブルには外部キー列が含まれており、この列は "組織" ディメンションのディメンション テーブル内のメンバを参照します。"組織" ディメンションのディメンション テーブルは、"通貨" ディメンションのディメンション テーブル内の通貨識別子を参照する外部キー列を含んでいます。この状況は、トランザクションの場所または支社によってトランザクションの通貨が決定される財務報告アプリケーションなどで最もよく発生します。この場合は、通貨ディメンションを参照する属性をビジネス エンティティ用ディメンションから選択できます。
レポートの通貨
通貨変換に多対多または一対多の種類の換算を選択する場合は、ビジネス インテリジェンス ウィザードが生成した MDX スクリプトが通貨換算の計算を実行するときのレポートの通貨を識別する方法を指定する必要があります。レート メジャー グループに関連する通貨ディメンションのメンバをすべて指定することも、ディメンションから個別のメンバを選択することもできます。
ビジネス インテリジェンス ウィザードでは、選択されているレポートの通貨を使用して通貨ディメンション用のディメンション テーブルから作成された名前付きクエリに基づいて、レポートの通貨ディメンションを作成します。
メモ : |
---|
一対多の種類の換算を選択した場合は、レポートの通貨ディメンションも作成されます。ディメンションにはピボットされた通貨を表す 1 つのみのメンバが含まれます。ピボットされた通貨は、一対多の通貨換算用のレポートの通貨としても使用されるためです。 |
キューブに定義されている各通貨換算には、個別のレポートの通貨ディメンションが定義されます。レポートの通貨ディメンションの名前は作成後に変更できますが、変更する場合は、その通貨換算用に生成する MDX スクリプトも更新して、レポートの通貨ディメンションを参照する際にスクリプト コマンドが正しい名前を使用するように設定する必要があります。
複数の通貨換算の定義
ビジネス インテリジェンス ウィザードを使用すると、ビジネス インテリジェンス ソリューションに必要な数の通貨換算をいくつでも定義できます。既存の通貨換算を上書きすることも、新しい通貨換算をキューブ用の MDX スクリプトに追加することもできます。 1 つのキューブに定義されている複数の通貨換算は、国際的な報告に関する複数の個別の換算要件をサポートしている財務報告アプリケーションなどの、複雑な報告要件を持つビジネス インテリジェンス アプリケーションに柔軟性をもたらします。
通貨換算の識別
ビジネス インテリジェンス ウィザードでは、通貨換算用のスクリプト コマンドを次のコメントに含めることで、各通貨換算を識別します。
//<Currency conversion>
...
[MDX statements for the currency conversion]
...
//</Currency conversion>
これらのコメントを変更または削除すると、ビジネス インテリジェンス ウィザードでは通貨換算を検出できなくなるので、これらのコメントは変更しないでください。
また、ウィザードではこれらのコメントに、作成日時、ユーザー、換算の種類などのメタデータを格納します。これらのコメントも、変更しないでください。ビジネス インテリジェンス ウィザードでは既存の通貨換算を表示する際に、このメタデータを使用するためです。
通貨換算に含まれているスクリプト コマンドは、必要に応じて変更できます。ただし、通貨換算を上書きした場合、変更は失われます。