Reports ヘルプ

テーブルの結合

レポート作成において、分析や報告に必要な情報を得るために、2つ以上のテーブルからデータを結合する必要が発生することもあります。2つ以上のテーブルから取得するには、「テーブルの結合」という操作でテーブルを結合する必要があります。結合とは、共通の列を使ってテーブル間の関係を確立する方法です。
SkyDesk Reportsでは、以下の2つの方法で、レポートを作成するためにテーブルを結合できます。

テーブルの自動結合

複数のテーブルにまたがるデータを使ったレポートを作成したい場合には、SkyDesk Reportsが提供する「自動結合」という特別な機能を使用します。この機能は、テーブルがルックアップの列を使って接続されている場合に、レポート作成時に自動的にテーブルを結合します。この機能を使うには、ルックアップの列を使って、2つのテーブルを関連付けているものを指定する必要があります。2つのテーブル間のルックアップ関係を定義するには、少なくても1つ以上の共通している列がテーブルに含まれていることが、必須となります。例を使って、さらに詳しくご説明します。

ルックアップ関係によってレポートを作成する際に、ルックアップの列を定義する方法と自動結合でテーブルがどのように結合されるかを説明するための例は、次のとおりです。

「店舗売上ワークスペース」モデル

上記店舗売上ワークスペースモデルでは、テーブル「Sales」と「Sales Person」には、「Sales Person ID 」という共通の列があります。テーブル「Sales」では、すべての売上が、販売した人の「Sales Person Id」に関連付けられています。テーブル「Sales Person」 では、各販売員が、列「Sales Person ID」に指定されている一意のIDで識別されます。同様に、テーブル「Sales」と「Product Details」には、「Product_ID」という共通の列があります。テーブル「Sales」では、すべての売上が、列「Sales Person Id」によって識別される商品に関連付けられています。テーブル「Product」 では、各商品が、列「Product ID」に指定されている一意のIDで識別されます。

これらの関連する列を指定することで、列「Sales Person ID」からテーブル「Sales」と「Sales Person」のルックアップ関係を定義できます。同様にテーブル「Sales」と「Product Details」の間でも、共通の列「Product_ID」からルックアップ関係を定義できます。ルックアップの列の関係が定義されると、SkyDesk Reportsは、該当するテーブルからレポートを作成する際に自動結合機能を使って、自動的にテーブルからデータを結合します。

ルックアップの定義

ルックアップ関係を定義する方法は、以下のとおりです。
上記の「店舗売上ワークスペース」は、SkyDesk Reportsに該当するテーブルがすでに作成されているとします。共通の列「Sales Person ID」から、テーブル「Sales」と「Sales Person」のルックアップ関係を定義しましょう。

  • ワークスペースの[エクスプローラー]タブから、テーブル「Sales」を開き、ツールバーにある[デザインの編集]ボタンをクリックします。
  • 列「Sales Person ID」と[ルックアップの列]が交差するセル上で、クリックします。ドロップダウンリストに、ワークスペースのすべてのテーブルと列の一覧が次のように表示されます。テーブル「Sales Person」の「Sales Person ID」を選択します。

また、次の操作を行って、ルックアップの列を作成することも可能です。

  • 該当するテーブルを開き、列の見出しを右クリックしてから、[ルックアップ列に変更]を選択します。
  • 表示される[ルックアップ列に変更]ダイアログで、ルックアップ対象の列を選択します。

これで、ルックアップの列「Sales Person ID」から、テーブル「Sales」と「Sales Person」のルックアップ関係が確立されます。ここでは、テーブル「Sales」をテーブル「Sales Persons」の子テーブルと呼ぶことにします。なぜなら、テーブル「Sales」は、親テーブルとなるテーブル「Sales Persons」から、列をルックアップするためです。

同様に、列「Product Id」を使ってテーブル「Sales」と「Product Details」のルックアップ関係を定義できます。ルックアップの列は、親テーブルである「Product Details」を使って、テーブル「Sales」(子テーブル)に定義されます。

自動結合を使ったレポートの作成

ルックアップの列を使ってテーブルを関連付けたら、ルックアップ関係のあるテーブルを選択することで、レポートを作成できます。SkyDesk Reportsは、テーブル間から列をドラッグ&ドロップすると、該当するテーブルから自動的にデータを結合し、レポートを作成します。
自動結合機能を使ってグラフ「Sales by each Sales Person」を作成する方法は、次のとおりです。

  • テーブル「Sales」を開き、ツールバーにある[新しいグラフビュー]オプションを選択します。
  • ここで、自動結合は他のテーブルとのルックアップ関係を検出し、[レポートデザイナー]の[列の一覧]にあるテーブル「Product」と「Sales」のすべての列を表示します。
  • テーブル「Sales」から列「Sale Person Name」をX軸ボックスに、テーブル「Sales」から列「Sales」をY軸ボックスに、それぞれドラッグ&ドロップします。
  • [グラフを作成]を選択します。

自動結合機能は、ルックアップの列「Product ID」を使ってテーブル「Sales」と「Sales Person」の両方から、自動的にデータを結合し、レポートを作成します。

また、関連テーブルの列は、レポートのフィルターにも使用できます。上記の列に続けて、テーブル「Product Details」からの列「Product Name」は、グラフデータのフィルターに使用でき、選択した商品に対する販売員による売上が次のように表示されます。

結合の種類のカスタマイズ

デフォルトでは、SkyDesk Reportsは「左結合」を使ってテーブルを結合します。使用可能な結合の種類は、次のとおりです。

  • 左結合:レポートは、子テーブル(左)からのすべての行と、親テーブル(右)からの一致する行だけを計算します。一致した行は、親テーブルと子テーブル間に定義された参照列に基づいて、処理されます。これがデフォルトの参照の種類になります。この場合、テーブル「Sales」が子テーブル、テーブル「Sales Person」は親テーブルとなります。
  • 右結合:レポートは、親テーブル(右)からのすべての行と、子テーブル(左)からの一致する行だけを計算します。一致した行は、親テーブルと子テーブル間に定義された参照列に基づいて、処理されます。この場合、テーブル「Sales Person」が子テーブル、テーブル「Sales」は親テーブルとなります。

結合の種類を変更できます。操作方法は、次のとおりです。

  • グラフのデザインページで[ビューの参照関係]アイコンをクリックし、[一覧]を選択します。
  • 表示される[このレポートのテーブル関係図]ダイアログで、結合の種類を選択し、[適用]をクリックします。

自動結合で使われるルックアップパスのカスタマイズ

ワークスペースにあるさまざまなルックアップの列を使って、複数のテーブルを関連付けられます。レポートの作成では、SkyDesk Reportsは、テーブル間の適切なルックアップの列(ルックアップパス)を参照して、自動的にテーブルを結合してレポートを生成します。 

しかし、場合によって、これは特定のニーズに合わないことがあります。これに対処するため、SkyDesk Reportsではルックアップパスの設定オプションを使用して、レポート作成に使用するテーブル間のルックアップパスを適切に選択できます。 

不具合管理ワークスペース」モデルの例を使って、ご説明します。テーブル「Bugs」と「Users」は、2つのルックアップの列(「Assignee ID」と「Reporter ID」)を使って、直接結合されています。テーブル「Bugs」はまた、列「Projects ID」を使ってテーブル「Projects」も参照しています。テーブル「Projects」と「Users」は、列「Owner ID」と「User ID」のルックアップを使って結合されています。これにより、テーブル「Projects」経由で、テーブル「Bugs」と「Users」の間に間接的な接続が作成されます。 

結合のためのルックアップの列をカスタマイズ

上記のモデルで、レポート「Bugs Identified by User」を作成する例を使ってご説明します。デフォルトでは、ユーザー別の不具合のレポートを作成する際に、SkyDesk Reportsは、列「Assignee ID」を使ってテーブル「Users」を参照しますが、これは正しくありません。なぜなら、ユーザーに割り当てられている不具合のレポートを作成することになるからです。 

このような場合に、使用するルックアップの列を選択することで変更できます。結合するルックアップの列を変更する方法については、次のとおりです。

これで、レポート「Bugs identified by Users」が作成されます。 

結合のためのルックアップパスをカスタマイズ

SkyDesk Reportsでは、テーブルを結合するルックアップパスを変更できます。 

プロジェクトに登録されている不具合(オーナー別)に関するレポートが必要だとします。テーブル「Bugs」と「Users」は直接結合されているので、SkyDesk Reportsは、ユーザーに割り当てられている不具合(プロジェクト別)としてレポートを生成します。レポートを作成するのに、テーブル「Projects」が考慮されていません。 

テーブル「Projects」経由でテーブル「Bugs」と「Users」を結合することで、このパスを変更して要件に合ったものを作成できます。

これで、テーブル「Bugs」は、テーブル「Projects 」経由でテーブル「Users」に関連付けられ、プロジェクトのオーナー(「User」)別でプロジェクトに登録されている不具合のデータを取得します。 

メモ:2つのテーブルを結合するのに、1つのパスしか設定できません。レポートの同じテーブルからの2つの列に対して、異なるパスは設定できません。ただし、別のテーブルからの2つの列に対しては、異なるパスを設定できます。

クエリーテーブルを使ったテーブルの結合

クエリーテーブルは、簡単にレポートを作成したり分析するためのデータを準備できる機能です。ワークスペースの1つ以上のテーブルからデータを結合し、標準のSQL SELECTクエリーを使って特定のデータビューを作成できます。これらのデータビューはテーブルに似ており、レポートの作成や共有、既存のクエリーテーブルに別のクエリーテーブルを作成するなど、さまざまな操作が可能です。

データセットの抽出、データセットの一括処理(統合)、データ変換、SQLクエリー関数の適用、データセットの結合などのために、クエリーテーブルを作成できます。

例えば、テーブル「Sales」と「Sales Person」を結合して各販売員別の売上を取得するクエリーは、次のように作成できます。

上記のクエリーの例では、テーブル「Sales」と「Sales Person」を結合しています。必要なテーブルを結合するクエリーテーブルを作成したら、SkyDesk Reportsでは、そのクエリーテーブルを使った分析や可視化のために、任意の種類のレポートを作成できるようになります。

さらに詳しく

Top