学課 1.4: 結合、照会条件、GROUP BY 文節を追加する
開始する前に、ユーザーは 学課 1.3: 結果列を指定する を完了する必要があります。
この学課では、下記のステップを行うことにより照会を限定します。
- 照会結果を、現在ビデオを貸し出し中の顧客と、現在貸し出し中のビデオに対してのみに限定する。
- 照会結果を、照会を実行するときにユーザーが指定する名前の特定の顧客に限定する。
- 照会結果を、貸し出し中のビデオの期限が切れる曜日ごと、そしてその日のビデオ・タイトルごと、および各ビデオ・タイトルの顧客名ごとに編成する。
表の結合
結合演算は、列値の一致をベースにして、データを 2 つ以上の表から検索することを可能にします。
表内のデータは単一の結果にリンクされます。
この照会には 2 つの結合が必要です。
照会結果は、一致する CUST_ID 列値を持つ RENTALS および CUSTOMERS の表項目をインクルードする必要があります。
照会結果はまた、一致するビデオ ID (VID_ID 列値) を持つ RENTALS および VIDEOS の表項目をインクルードする必要があります。
- 表ペイン内で R 表のヘッダーを右クリックして、それからポップアップ・メニュー上の「結合の作成」をクリックする。
- 「ソース」の下の「結合の作成」ウィンドウ内で、以下の選択を行う。
- 「表 (別名)」リスト内で「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 照会を実行する を開始する準備ができました。