テーブルの追加

テーブルの追加により、2 つ以上の ACL テーブル内のレコードが新しいテーブルに結合されます。 分析を実行する前に、複数のテーブルを単一のテーブルの最後に追加しなければならない場合があります。

たとえば、1 年全体に相当するデータに対して分析を実行したいが、データが 12 の月間 Excel ワークシートに分散している場合を考えます。 個別のワークシートを ACL にインポートした後に、それらを最後に追加し、分析用の単一の年次テーブルを作成できます。

追加作業の方法

ここで、追加とはレコード グループを別のレコード グループの末尾に付加することです。 各ソース テーブル内のレコードが、それらのテーブルを選択する順序と同じ順序で追加されます。 新しいテーブルには、最初に選択したテーブルのレコード、2 番目に選択したテーブルのレコード、... というような順序で格納されます。

各ソース テーブルは、レコード構造が同じでも異なっていてもどちらでも構わず、また、並べ替えても並べ替えなくても構いません。

フィールドが追加される仕組み

複数のテーブルのレコードを追加するときには、レコード内の個別のファイルが追加される方法は、フィールドに同一の名前があるか一意の名前があるかどうかによって異なります。

名前が同じフィールド

同じ物理名と同じデータ カテゴリを持つソース テーブル フィールドは、互いのフィールドに直接追加されます。

次の図で、フィールド ABC はすべて直接追加されます。

名前が一意のフィールド

すべてのソース テーブルにおいて一意である物理名を持つフィールドは、出力テーブルには追加されますが、互いのフィールドには直接追加されません。

次の図で、フィールド AE は、このフィールド追加法が使用されたフィールドの例です。

ヒント

名前が異なるフィールドを直接追加したい場合は、事前に各テーブル レイアウト内のフィールドの物理名を統一しておいてください (フィールドが同じデータ カテゴリに属しているか、フィールドのデータ カテゴリを一致させていると仮定します。) 詳細については、 物理フィールドを定義するを参照してください。

追加の実行に適する場面

追加は、構造が同じまたは類似である複数のテーブル内のデータを結合したい場合に使用できます。 たとえば、月次テーブルまたは四半期テーブルを年次テーブルに結合する場合に使用することをお勧めします。

ヒント

APPEND コマンドを 1 回実行しただけで、APPEND オプションを指定した EXTRACT コマンドの複数回の実行結果が置き換えられます。

シナリオ

1 年全体に相当するデータに対して分析を実行したいが、データが 12 の月間取引テーブルに分散している場合を考えます。

アプローチ

12 の月間テーブルのデータを、それらのすべてを含む単一の年間テーブルに追加し、その後に分析を実行します。

追加に適さない場合とは

追加は結合および関連付けの代替としては使用できません。その理由は、共通キー フィールド内の一致する、または一致しない値に基づいてレコードを包含または除外することができないためです。 追加では、すべてのソース テーブル内の全レコードが出力テーブルに追加されます。

類似性がまったくないテーブルの追加

類似性がまったくないテーブル、つまり共通のフィールドがない 2 つ以上のテーブルを追加することができます。 類似性がないテーブルを追加することが分析目的に資する場合もあります(これは追加の意図した主な用途ではありませんが)。

すべてのフィールドまたは共通フィールドのみの追加

テーブルを追加する場合、オプションは 2 つあります。

  • すべてのソース テーブル内の全フィールドを追加する
  • すべてのソース テーブルに共通のフィールド、つまりすべてのテーブルに存在するフィールドのみを追加する

フィールドが共通と見なされるためには、同じ物理名を持ち、次のいずれかのデータ カテゴリのうち同じデータ カテゴリに属している必要があります。

  • 文字
  • 数値
  • 日付時刻
  • 論理

例:3 つの従業員テーブルの追加

従業員データを分析する前に、3 つの従業員テーブルを従業員マスター テーブルに追加したいとします。

これら 3 つのテーブルには、どのテーブルにも存在する 3 つの共通フィールドがあります。

  • Employee_number
  • First_name
  • Last_name

さらに、1 つまたは 2 つのテーブルには存在するが、3 つのテーブルすべてに存在するわけではない、共通でないフィールドが 2 つあります。

  • Middle_name
  • Email

入力

これら追加対象となる 3 つのテーブルは次のとおりです。

テーブル名 フィールド
Employees_central
Employees_east
Employees_west

出力 – すべてのフィールドが追加されます。

すべてのフィールドを追加する場合は、これら追加される 3 つのテーブル内の全レコードと全フィールドが出力テーブルに追加されます。

ソース テーブルにフィールドがない場所は、出力テーブルでは空白値になります。

テーブル名 フィールド
Employees_master

出力 – 共通フィールドのみが追加されます。

共通フィールドのみを追加する場合は、追加される 3 つのテーブル内の全レコードと共通フィールドのみが出力テーブルに追加されます。

テーブル名 フィールド
Employees_master

自動調整

次の場合、ACL により、フィールドを追加するために、フィールドが自動的に調整されます。

フィールドのデータ カテゴリ 調整の実行
文字
  • 異なるフィールド長は調整されます。
  • フィールドを ASCII または UNICODE データ型に変換することで、カスタム、PCASCII、EBCDIC など様々な文字データ型が調整されます。
数値
  • 異なるフィールド長は調整されます。 フィールドは ACL データ型に変換されます。
  • 異なる小数点以下桁数が定義されている場合は、調整されます。 小数点以下桁数は、必要に応じて数値の末尾にゼロが付加されて、最大の桁数に統一されます。 フィールドは ACL データ型に変換されます。
  • フィールドを ACL データ型に変換することで、Print、Float、EBCDIC、Micro など複数のデータ型が調整されます。
日付時刻
  • フィールドを ACL のデフォルト書式に変換することで、ソース データ内にある複数の日付書式、日付時刻書式、時刻書式が調整されます。
    • YYYYMMDD
    • YYYYMMDD hh:mm:ss
    • hh:mm:ss

自動調整が実行されない場合とは

次の場合、フィールドは ACL によって自動調整されません。 エラー メッセージが表示され、追加操作は実行されません。

  • 名前が同じ 2 つのフィールドが異なるデータ カテゴリに属する
  • 名前が同じ 2 つの日付時刻フィールドが異なる日付時刻サブタイプ(日付、日付時刻、時刻)に属する
  • 名前が同じ 2 つの日付時刻フィールドにおいて、タイムゾーン インジケーターの使用有無が一致していない

これらの状況のいずれかが発生した場合は、ユーザーが指定した一致 を参照してください。

ユーザーが指定した一致

[最後に追加] ダイアログボックスの 2 つのオプションを使用すると、異なるデータ カテゴリに属する同一の名前のフィールドを一致させ、エラーなくフィールドを追加することができます。 オプションは、文字型データ カテゴリの同じ名前のフィールドを統一することによって動作します。

  • 文字型データを使用して共通フィールドと異なるデータ型を一致させると、一致のために必要な場合のみ、文字以外のフィールドが文字データ カテゴリに変換されます。
  • すべてのフィールドを文字型データに変換すると、一致のために必要とされるか否かにか関わらず、文字データカテゴリにすべてのテーブルが最後に追加されます

シナリオ

Employee_ID フィールドが 1 つのテーブル内の文字型データであり、もう 1 つのテーブル内の数値データである 2 つのテーブルを最後に追加したいとします。

アプローチ

[最後に追加] ダイアログボックスで、文字データ型を使用して、共通フィールドを異なるデータ型と合わせます。 数値的 Employee_ID フィールドは文字データに変換され、2 つのフィールドはエラーなしで追加されます。 Employee_ID フィールドは文字データに変換され、2 つのフィールドはエラーなしで最後に追加されます。

ヒント

文字型データのカテゴリを一致させることがニーズを満たしていない場合は、異なる手法を使用してフィールドを手作業で一致させるか、1 つ以上のフィールドを再定義することができます。 詳細については、フィールドの一致物理フィールドを定義するを参照してください。

演算フィールドがサポートされていない

演算フィールドを追加できません。 テーブルを追加する場合、ソース テーブル内のすべての演算フィールドは自動的に出力テーブルから除外されます。

あるソース テーブル内の演算フィールドが、別のソース テーブル内の物理フィールドと同じ名前を持っている場合には、エラー メッセージが表示され、追加処理は実行されません。

ヒント

演算フィールドを追加するには、まずこのようなフィールドを抽出して、物理フィールドに変換します (詳細については、データを抽出して追加するを参照してください)。次に、演算フィールドの抽出先となったテーブルを追加操作で使用します。

別のアプローチとしては、追加された出力テーブルに演算フィールドを再作成します。

レコード ノート フィールドがサポートされていない

レコード ノート フィールドを追加できない場合です。 テーブルを追加する場合、ソース テーブル内のすべてのレコード ノート フィールドは自動的に出力テーブルから除外されます。

あるソース テーブル内のレコード ノート フィールドが、別のソース テーブル内の物理フィールドと同じ名前を持っている場合には、エラー メッセージが表示され、追加処理は実行されません。

レコード ノート フィールドは、レコードにノートを追加したときに ACL によって自動的に生成されるものです。 詳細については、レコード ノートの追加と編集を参照してください。

追加に関する追加情報

以下のテーブルでは追加に関する追加情報を提供します。

機能分野 詳細
レコード長

追加時にすべてのソース テーブル内の全フィールドを含めるには、出力テーブルのレコード長がソース テーブル内の最も長いレコードより長くなる可能性があります。

出力テーブルのレコード長が ACL の上限である 32 KB を超えると、エラー メッセージが表示されます。

日付時刻フィールド

2 つ以上の日付時刻フィールドを追加するには、次の条件を満たす必要があります。

  • 物理名が同じ
  • データ カテゴリが同じ(日付時刻)
  • データ サブタイプが同じ(日付、日付時刻、時刻)
  • タイムゾーン インジケーターの使用有無の一致 – 追加対象となるすべてのフィールドで使用するか、使用しないかのいずれか

メモ

異なる日付時刻フィールドを文字データ カテゴリに変換してすることでこれらのフィールドを一致させ、それから最後に追加ことができます。 このアプローチでは、データを 1 つのテーブルに結合することができます。 ただし、ソース データの性質によっては、結合されたデータを日付時刻データに戻すことができない場合があります。

小数点以下桁数

小数位がある数値フィールドの追加は、特定の動作によって制御されます。

小数位設定

追加操作では、テーブル レイアウトのフィールド定義にある小数位設定に定義された小数点以下桁数が使用されます。

メモ

小数位設定は、ソース データ内の実際の小数点以下桁数とは同じでない場合があります。 小数位設定を超える小数点以下桁数は未定義のため、計算では丸められます。

統一されていない小数位設定

最後に追加された数値フィールドの小数位設定が統一されていない場合には、それらのフィールドは ACL データ型に変換され、最も長い小数位設定に自動的に調整されます。

最も長い小数位設定を超えるソース データ ファイル内の小数点以下桁数は、追加操作で生成される出力テーブルから除外されます。

統一されている小数位設定

追加された数値フィールドの小数位設定が統一されている場合には、データ型変換も調整も行われません。

小数位設定を超えるソース データ ファイル内の小数点以下桁数は、追加操作で生成される出力テーブルに追加されます。

並べ替え

ソース テーブルに存在するすべての並べ替え順は、出力テーブル内のそれぞれのレコード セットで別々に保持されます。

たとえ両方のテーブルのレコードが並べ替えられていても、結果として生じる結合されたテーブルは、並べ替えられていないテーブルと見なされます。これは、抽出されたレコードを出力先テーブルの末尾にグループとして追加するときに、出力先テーブルの既存の並べ替え順が何も考慮されないからです。

たとえば、月次または四半期テーブルを追加して年次テーブルを作成する場合は、月次または四半期データの内部並べ替えは保持されます。 必要であれば、追加操作を実行した後で、出力テーブルを並べ替えることもできます。

フィールドの順番

共通フィールド

ソース テーブルの共通フィールドは、同じ順序になっていなくても追加できます。

たとえば、以下のフィールドは順序が異なっていても正常に追加されます。

テーブル フィールド
表 1 ラストネーム | ファーストネーム | ミドルネーム
表 2 ファーストネーム | ミドルネーム | ラストネーム

出力テーブル内でのフィールドの順序は、[最後に追加]ダイアログ ボックスで選択した最初のテーブルによって決まります。 したがって、上の例では、出力テーブルの順序は次のようになります。

  • ラストネーム | ファーストネーム | ミドルネーム

共通でないフィールド

ソース テーブル内の共通でないフィールドは、選択したテーブル グループに出現している順に出力テーブルに出力されます。

たとえば、以下の 2 つのテーブルを追加する場合を考えます。

テーブル フィールド
表 1 役職 | ラストネーム | ファースト ネーム | ミドルネーム
表 2 ファーストネーム | ミドルネーム | ラストネーム | 生年月日

出力テーブルでの順序は次のようになります。

  • 役職 | ラストネーム | ファーストネーム | ミドルネーム | 生年月日
代替列見出し ソース テーブルの代替列見出しは、出力テーブルにも出力されます。 複数のソース テーブルで同じフィールドに代替列見出しがある場合は、最初に選択したテーブルの代替列見出しが優先的に出力されます。