< 前へ | 次へ >

結合、照会条件、および GROUP BY 文節の追加

この演習では、照会結果を、ビデオを現在レンタルしている顧客および現在レンタルされているビデオに制限します。 また、照会結果を、照会実行時に名前を指定する特定の顧客に制限します。 さらに、照会結果を、ビデオのレンタル期限である曜日別に編成します。 各曜日の中ではビデオ・タイトル別、および各ビデオ・タイトルについては顧客名別にビデオを配列します。

テーブルの結合

結合操作によって、マッチングする列値に基づいて 2 つ以上のテーブルからデータを検索することができます。 表内のデータは単一の結果にリンクされます。 この照会には 2 つの結合が必要です。 照会結果には、CUST_ID 列値がマッチングする RENTALS テーブル項目と CUSTOMERS テーブル項目が含まれている必要があります。 また、照会結果には、ビデオ ID (VID_ID 列値) がマッチングする RENTALS テーブル項目と VIDEOS テーブル項目も含まれている必要があります。

テーブルを結合するには、次のようにします。

  1. 「テーブル」ペインで、「R」テーブルのヘッダーを右クリックし、 ポップアップ・メニューから「結合の作成 (Create Join)」をクリックします。
  2. 「結合の作成 (Create Join)」ウィンドウの「ソース」下で、次の選択を行います。
    1. 「テーブル (別名)」リストで、「RENTALS (R)」をクリックします。
    2. 「列」リストで、「CUST_ID」をクリックします。
  3. 「ターゲット」下で、次のように選択します。
    1. 「テーブル (別名)」リストで、「CUSTOMERS (C)」をクリックします。
    2. 「列」リストで、「CUST_ID」をクリックします。
  4. 「OK」をクリックします。 2 つの列の間に結合コネクターが表示されます。
  5. 「テーブル」ペインで、R (RENTALS) テーブルの「VID_ID」列から V (VIDEOS) テーブルの「VID_ID」列にポインターをドラッグします。
「SQL ソース」ペインを参照し、ソース・コード内の結合を確認します。
   FROM
      XMLTEST.VIDEOS AS V JOIN XMLTEST.RENTALS AS R JOIN XMLTEST.CUSTOMERS AS C
      ON R.CUST_ID = C.CUST_ID ON V.VID_ID = R.VID_ID

「テーブル」ペインでは、両方の結合が次のように作成されています。

テーブルの結合

「テーブル」ペインで結合タイプを変更する (例えば、デフォルトの内部結合から左、右、または完全外部結合に変更する) には、コネクターを右クリックし、ポップアップ・メニューで「結合タイプの指定」をクリックして、 「結合の指定」ウィンドウで必要な結合タイプを選択します。

照会条件の作成

次は、必要な顧客名を持つ結果行のみが照会によって取り出されるような照会条件を、照会で作成する必要があります。 照会に条件を追加するには、「設計」ペインの「条件」ページを使用します。

照会条件を作成するには、次のようにします。

  1. 「条件」タブをクリックして「条件」ページを表示します。
  2. 最初の行で、「列」列のセルをダブルクリックし、リストで「C.NAME」をクリックします。
  3. 同じ行で「演算子」列のセルをダブルクリックし、「=」演算子をクリックします。
  4. その行で「値」列のセルをダブルクリックし、:custName と入力します。 コロンと変数名の組み合わせは、照会の実行時に値と置き換えられる変数を表す SQL 構文です。 SQL 照会を実行すると、この仕組みが分かります。
「条件」ページは次のイメージのようになります。

「設計」ペイン -「条件」ページ

GROUP BY 文節の追加

照会を、曜日別、タイトル別、および顧客名別のグループに分類することができます。
SQL 照会ビルダーで GROUP BY 文節を作成するには、「設計」ペインの「グループ」ページを使用します。 このビューでは、列式、ネスト・グループ、グループ・セット (DB2 のみ)、および ROLLUP と CUBE のグループ関数 (Oracle および DB2) を使用して、照会結果でのより詳細なグループ化を作成することもできます。

GROUP BY 文節を追加するには、次のようにします。

  1. 「設計」ペインで、「グループ」タブをクリックします。
  2. 結果列として DAYOFWEEK 関数を追加します。
    1. 「列」テーブルで、最初の行をダブルクリックし、 リストで「式のビルド」をクリックして Enter を押します。
    2. ウィザードの「式タイプ」ページで「関数」をクリックしてから、「次へ」をクリックします。 「関数式ビルダー」ページが開きます。
    3. 「関数カテゴリーを選択」リストで、「日付と時刻」をクリックします。
    4. 「関数を選択」リストで、「DAYOFWEEK」をクリックします。
    5. 「関数シグニチャーを選択」リストで、「DAYOFWEEK(DATE)」-->「INTEGER」の順にクリックします。 関数シグニチャーに、1 つの引数が関数に必要であることが示されます。
    6. 引数テーブルの「値」列で、セルをクリックし、リストの「R.DATE」をクリックして Enter を押します。
    7. 「完了」をクリックします。 DAYOFWEEK 関数が「列」テーブルの最初のセルに表示されます。
  3. 「列」テーブルの 2 行目で、リストから「V.TITLE」列を選択し、3 行目で「C.NAME」を選択します。 「グループ」ページは次のイメージのようになります。

    「設計」ペイン - 「グループ」ページ

これで照会は完了です。この照会は SQL 照会ビルダーに次のように表示されます。

完了した照会

< 前へ | 次へ >

フィードバック