標準のテーブル結合定義 

複数のテーブルをすべて SELECT 命令でリンクすることを、結合といいます。結合の結果、セットは 1 つのテーブルとなり、その各行には結合で使用された全テーブルの項目すべてが含まれます。結合で使用されるさまざまなテーブル間のリンクは、すべて個別に指定されます。リンクによってさまざまなテーブルのレコードの正確な組み合わせが指定され、レコードは出来上がったセットの一部となります。

テーブル結合の結果も ( フラット ) テーブルです。したがって、テーブル間の階層関係は、テーブル結合を使用して分析することはできません。分析には論理データベースが必要です。

テーブル結合についての詳細は、 ABAP SELECT 命令のオンライン文書を参照してください。

クエリのユーザがレポートを実行できるようにする場合は、機能分野を登録して結合の最初のテーブル名を表題、データベース画面のテーブル項目に入力し、テーブル結合項目を選択する必要があります。

テーブルは ABAP データディクショナリに入力され、データベースに存在している必要があります。

技術的な理由から、結合の最初のテーブルを後で変更することはできません。続行を選択すると、結合するテーブル画面が表示されます。テーブル結合に必要な他の情報をここで入力することができます。

結合に含まれるすべてのテーブルを画面の左側に入力します。テーブルの各ペア間で使用されるリンクのタイプを以下のように指定する必要があります。

1 テーブルのレコードごとに結果セットにレコードが 1 つ含まれ、そのレコードに対して、リンク条件 ( 下記参照 ) を満たす第 2 テーブルのレコードが存在します。

1 テーブルの各レコードは結果セットに含まれます。第 1 テーブルのレコードに対するリンク条件を満たすレコードが第 2 テーブルにない場合には、初期値のある項目を含んでいるレコードが第 2 テーブルに対して使用されます。

1 つのテーブルを結合に 2 回以上インクルードする場合は、エイリアステーブルを使用する必要があります。 追加テーブルの割当で説明されているように、該当するテーブルに対してエイリアス名を定義します。これで、元の名称とエイリアス名の両方でテーブルを結合にインクルードすることができます。

リンク条件は、結合するテーブルのペアごとに定義する必要があります。定義には 2 つのステップが必要です。結合で 2 つのテーブルのみをリンクする場合、第 1 のステップは、単に 条件定義機能を呼び出すだけです。 2 つのテーブルが画面右側のテーブルペア一覧に表示されます。結合で 3 つ以上のテーブルをリンクする場合は、 条件定義機能を呼び出す前に 2 つのテーブルを選択する必要があります。選択後に機能を呼び出すと、選択された 2 つのテーブルが画面右側のテーブルペア一覧に表示されます。

条件定義機能では、単にリンク条件を定義する両テーブルが決定されます。第 2 ステップでは、個別条件をそれぞれ指定します。

リンク条件の指定は、条件指定機能を呼び出して行います。この機能は、テーブルペアの右側にある画面の押ボタンを使用して、テーブルペアごとに呼び出すことができます。機能を呼び出すと、このテーブルペアに対するリンク条件を指定する画面が表示されます。テーブル結合ではどのような条件でも指定できますが、クエリでサポートされるのは、 2 つのテーブルからの 2 つの項目それぞれが同じ値 ( 同等の関係 ) を持つ場合のみです。

条件指定機能をテーブルペアに対して初めて呼び出した時、条件に対してデフォルトを定義することができます。提示されたデフォルトは、ディクショナリに保管された外部キー依存か、結合で使用されたテーブルのキー項目にもとづいています。

使用される 2 つのテーブルに含まれる全項目が、技術名称およびテキスト ( ) と共に リンク条件画面に一覧表示されます。 2 つの項目一覧は、互いに無関係にスクロールすることができます。 2 つの項目を同等な関係でリンクする場合には、両項目に割り当てられたエントリ項目に同じコードを入力する必要があります。このコードは任意の 2 文字 ( 数字をお奨めします ) で構成されます。このコードは、目的が単に項目間の一意の対応を確保することであるという点で、機能グループに使用されるコードと似ています。

データベースシステムには一定の制限があり、まったく任意の項目の組み合わせをリンクできるわけではりません。 2 つの項目がディクショナリに ( 長さ属性を含む ) 同じデータ型を持つ場合のみ、両項目をリンクさせることができます。つまり、 2 つの項目が同じドメインを持つ場合にリンクできるということです。テーブルごとに個別の検索機能があり、これで該当する項目を検索することができます。テキスト、ドメイン、およびデータ型を検索することができます。テキスト検索では、項目の技術名称とテキスト ( ) のすべてが検索されます。該当項目の指定検索ができるよう、 項目文書機能を使用して項目の技術定義についての情報を検索することがきでます。

2 つの互換性のある項目に同じコードが入力されている場合、これらの 2 つの項目は同じ行 ( 項目一覧の最初の行 ) に置かれ、正常にリンクされたことが等号で示されます。この関係を取り消すには、 2 つの項目のうちの 1 つにカーソルを置き、等号のすぐ上の押ボタンで 関係取消機能を呼び出します。

テーブルペアに対するリンク条件の定義が終了したら、前画面機能を使用して結合するテーブル画面に戻ることができます。定義したすべてのリンク条件の指定が終了したら、機能グループ機能を使用して機能グループ更新に移ることができます。

ここでは、論理データベースを通じて機能分野に使用可能なすべての機能にアクセスすることができます。たとえば、追加テーブルの登録、追加項目の定義およびパラメータと選択基準の定義などです。 順次データセットセクションの最後にある備考欄を注意して読んでください。

機能グループ更新画面では、第 2 のサブツリーのテーブルはすべて、同じレベルで横並びに配置されています。

論理データベースとは大きな違いがあることに注意してください。テーブル結合の結果はフラットテーブルとなるので、階層関係を分析することはできません。このため、追加テーブルと追加項目は常に結合の第 1 テーブルに接続され、存在するコードはレコード処理のコードのみです。接続は常に結合の第 1 テーブルに対して行われますが、結合に使用されたテーブルに含まれるどの項目にも、接続された追加テーブルの WHERE 条件または追加項目のコードでアクセスすることができます。

機能グループ画面には、結合機能が含まれています。この機能を使用してテーブル結合更新を再度呼び出し、結合の定義またはリンク条件の定義に対して随時変更を行うことができます。唯一の制限は、結合の第 1 テーブルが削除できないこと、また他のテーブルについては、これらのテーブルの項目がいずれも機能グループに割り当てられていない場合にのみ結合から削除することができるということです。