エクササイズ 1.4: 結合、照会条件、および GROUP BY 文節の追加
このエクササイズを始める前に、エクササイズ 1.3:
結果列の指定を完了しておく必要があります。
このエクササイズでは、次のステップに従って照会を限定します。
- 照会結果を、ビデオを現在レンタルしている顧客および現在レンタルされているビデオに制限する。
- 照会結果を、照会を実行したときに名前を指定した特定の顧客に制限する。
- 照会結果を、ビデオのレンタル期限である曜日別、各曜日ではビデオ・タイトル別、
および各ビデオ・タイトルでは顧客名別に編成する。
テーブルの結合
結合操作によって、マッチングする列値に基づいて 2
つ以上のテーブルからデータを検索することができます。
テーブル内のデータをリンクすることで単一の結果が生成されます。
この照会には 2 つの結合が必要です。
照会結果には、CUST_ID 列値がマッチングする RENTALS テーブル項目と
CUSTOMERS テーブル項目が含まれている必要があります。
また、照会結果には、ビデオ ID (VID_ID 列値) がマッチングする
RENTALS テーブル項目と VIDEOS テーブル項目も含まれている必要があります。
- 「テーブル」ペインで、「R」テーブルのヘッダーを右クリックし、
ポップアップ・メニューから「結合の作成 (Create Join)」をクリックします。
- 「結合の作成 (Create Join)」ウィンドウの「ソース」下で、次の選択を行います。
- 「テーブル (別名)」リストで、「RENTALS (R)」をクリックします。
- 「列」リストで、「CUST_ID」をクリックします。
- 「ターゲット」下で、次の選択を行います。
- 「テーブル (別名)」リストで、「CUSTOMERS (C)」をクリックします。
- 「列」リストで、「CUST_ID」をクリックします。
- 「OK」をクリックします。
2 つの列の間に結合コネクターが表示されます。
- 「テーブル」ペインで、R (RENTALS)
テーブルの「VID_ID」列から V (VIDEOS)
テーブルの「VID_ID」列にポインターをドラッグします。
「SQL ソース」ペインを参照し、ソース・コード内の結合を確認します。
WHERE
R.CUST_ID = C.CUST_ID
AND R.VID_ID = V.VID_ID
「テーブル」ペインでは、両方の結合が次のように作成されています。

「テーブル」ペインで結合タイプを変更する
(例えば、デフォルトの内部結合から左、右、または完全外部結合に変更する)
には、コネクターを右クリックし、ポップアップ・メニューで「結合タイプの指定」をクリックして、
「結合の指定」ウィンドウで必要な結合タイプを選択します。
照会条件の作成
次は、必要な顧客名を持つ結果行のみが照会によって取り出されるような照会条件を、照会で作成する必要があります。
照会に条件を追加するには、「デザイン」ペインの「条件」ページを使用します。
- 「条件」タブをクリックして「条件」ページを表示します。
- 「列」列をダブルクリックし、リストで「C.NAME」をクリックします。
- 「演算子」列をダブルクリックし、「=」演算子をクリックします。
- 「値」列をダブルクリックし、:custName と入力します。
コロンと変数名の組み合わせは、照会の実行時に値と置き換えられる変数を表す SQL 構文です。
SQL 照会を実行すると、この仕組みが分かります。
「条件」ページは次のイメージのようになります。

GROUP BY 文節の追加
照会を、曜日別、タイトル別、および顧客名別のグループに分類することができます。
SQL ビルダーで GROUP BY 文節を作成するには、「デザイン」ペインの「グループ」ページを使用します。
このビューでは、列式、ネスト・グループ、グループ・セット (DB2 Universal Database
のみ)、および ROLLUP と CUBE のグループ関数 (Oracle および DB2 Universal Database)
を使用して、照会結果でのより詳細なグループ化を作成することもできます。
- 「デザイン」ペインで、「グループ」タブをクリックします。
- 結果列として DAYOFWEEK 関数を追加します。
- 「列」テーブルで、最初の行をダブルクリックし、
リストで「式のビルド」をクリックして Enter を押します。
- ウィザードの「式ビルダー」ページで、「関数」をクリックします。
「関数式ビルダー」ページが開きます。
- 「関数カテゴリーを選択」リストで、「日付と時刻」をクリックします。
- 「関数を選択」リストで、「DAYOFWEEK」をクリックします。
- 「関数シグニチャーを選択」リストで、「DAYOFWEEK(DATE)」-->「INTEGER」
の順にクリックします。
関数シグニチャーに、1 つの引数が関数に必要であることが示されます。
- 引数テーブルの「値」列で、セルをクリックし、リストで「R.DATE」をクリックして
Enter を押します。
- 「終了」をクリックします。DAYOFWEEK 関数が「列」テーブルの最初のセルに表示されます。
- 「列」テーブルの 2 行目で、リストから「V.TITLE」列を選択し、3
行目で「C.NAME」を選択します。
「グループ」ページは次のイメージのようになります。

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

これで、エクササイズ 1.5: SQL 照会の実行を始める準備完了です。