DEFINE RELATION コマンド

2 つの Analytics テーブル間の関連付けを定義します。

メモ

最大 18 の Analytics テーブルを関連付け、それらのテーブルのフィールドは単独のテーブルに存在しているかのように扱うことができ、任意に組み合わせてデータにアクセスし分析することが可能です。 関連するテーブルの各ペアの個別の DEFINE RELATION コマンドを指定する必要があります。

構文

DEFINE RELATION キーフィールド名 WITH 関連テーブル名 INDEX インデックス名 <AS リレーション名>

パラメーター

名前 説明
キーフィールド名

親テーブルのキー フィールド。

指定できるキー フィールドは、各リレーションにつき 1 つのみです。

メモ

親テーブルと孫テーブルの関係を作成するときには、テーブル名.フィールド名の形式で完全修飾キー フィールド名を指定する必要があります。

3 つのテーブルを関連付けるで、Vouchers.created_by を参照してください。

WITH 関連テーブル名

関連テーブルの名前。

INDEX インデックス名

関連テーブルのキー フィールドのインデックスの名前。

テーブルを関連付ける前に、キー フィールドを基に関連テーブルにインデックスを作成する必要があります。

AS リレーション名

省略可能

一意のリレーション名。

デフォルトでは、子テーブルの名前がリレーション名となります。 同じ子テーブルに対し、さらに関連付けを追加して定義する場合は、一意な名前を指定する必要があります。

2 つのテーブルの関連付け

以下の例では、顧客番号フィールド(CustNum)をキー フィールドに指定して、現在開いているテーブルを Customer テーブルと関連付けます。

DEFINE RELATION CustNum WITH Customer INDEX Customer_on_CustNum

Customer_on_CustNum は、キー フィールドの子テーブル インデックスの名前です。 子テーブル インデックスはテーブルを関連付けるときに必要です。

子テーブル インデックスが DEFINE RELATION コマンドを実行するときに存在していない場合は、エラー メッセージが表示され、関連付けが実行されません。

ヒント

Analytics  のユーザー インターフェイスで関係を定義する場合、子テーブル インデックスが自動的に作成されます。

2 つのテーブルを関連付ける前に子テーブル インデックスを作成できます。

必要に応じて、2 つのテーブルを関連付ける直前に子テーブル インデックスを作成できます。 次の例は、Ar テーブルを Customer テーブルに関連付ける前に、Customer 子テーブルでインデックスを作成する方法を示します。

OPEN Customer
INDEX ON CustNum TO Customer_on_CustNum
Open Ar
DEFINE RELATION CustNum WITH Customer INDEX Customer_on_CustNum

3 つのテーブルを関連付ける

以下の例は、ACL_Rockwood.ACL サンプル プロジェクトで 3 つのテーブルを関連付けます。

  • Vouchers_items 親テーブル
  • Vouchers 子テーブル
  • Employees 孫テーブル

Vouchers テーブルを関係の中間テーブルとして使用すると、各伝票項目を、項目を処理した従業員に関連付けることができます。

OPEN Vouchers
INDEX ON voucher_number TO "Vouchers_on_voucher_number"
OPEN Vouchers_items
DEFINE RELATION voucher_number WITH Vouchers INDEX Vouchers_on_voucher_number
OPEN Employees
INDEX ON employee_number TO "Employees_on_employee_number"
OPEN Vouchers_items
DEFINE RELATION Vouchers.created_by WITH Employees INDEX Employees_on_employee_number

構文ロジックの説明

  1. Vouchers テーブルを開き、voucher_number フィールドにインデックスを作成します。
  2. Vouchers_items テーブルを開き、voucher_number をキー フィールドとして使用し、Vouchers テーブルに関連付けます。
  3. Employees テーブルを開き、employee_number フィールドにインデックスを作成します。
  4. Vouchers_items テーブルを開き、Vouchers.created_by をキー フィールドとして使用し、Employees テーブルに関連付けます。

    メモ

    Vouchers.created_by は 2 番目の関係でキー フィールドとして使用できます。最初の関係で Vouchers_itemsVouchers を既に関連付けているためです。

備考

メモ

このコマンドの動作の詳細については、Analytics のヘルプを参照してください。