Hitachi

Hitachi Advanced Data Binder SQLリファレンス


7.4.1 表式の指定形式および規則

表式とは,FROM句,WHERE句,GROUP BY句,およびHAVING句の総称です。表式は問合せ指定中に指定します。

〈この項の構成〉

(1) 指定形式

表式::=FROM句WHERE句〕
        〔GROUP BY句〕
        〔HAVING句

(2) 指定形式の説明

FROM句

FROM句には,検索対象となる表を指定します。FROM句の詳細については,「7.5 FROM句」を参照してください。

WHERE句

WHERE句には探索条件を指定します。WHERE句の詳細については,「7.6 WHERE句」を参照してください。

GROUP BY句

グループごとに検索データを集計する場合にGROUP BY句を指定します。GROUP BY句の詳細については,「7.7 GROUP BY句」を参照してください。

HAVING句

GROUP BY句によってグループごとに集計されたデータの抽出条件を指定する場合にHAVING句を指定します。HAVING句の詳細については,「7.8 HAVING句」を参照してください。

(3) 規則

  1. 表式の結果の列を列指定として参照することができます。

  2. WHERE句,GROUP BY句,およびHAVING句すべてを省略した場合,表式の結果はFROM句の結果となります。それ以外の場合は,指定した各句の結果が直後に指定した句に適用されます。表式の結果は,最後に指定した句の結果となります。

    次に示すSELECT文を実行する場合を例にして具体的に説明します。

    (例)

    販売履歴表(SALESLIST)から,2011/9/3以降の商品コード(PUR-CODE)ごとの販売個数の合計値を求めます。その際,販売個数の合計値が20個以下の商品コードだけを検索対象にします。

    SELECT "PUR-CODE",SUM("PUR-NUM")
        FROM "SALESLIST"
            WHERE "PUR-DATE">=DATE'2011-09-03'
            GROUP BY "PUR-CODE"
            HAVING SUM("PUR-NUM")<=20
    説明

    下線部分が表式の指定です。上記のSELECT文が実行された場合,次に示す流れで表式の結果が導き出されます。

    1.FROM句の結果がWHERE句に適用されます。その結果,SALESLIST表中のPUR-DATE列が2011-09-03以降のデータ(PUR-CODE列のデータとPUR-NUM列のデータ)が抽出されます。

    2.1の抽出結果がGROUP BY句に適用されてグループ化されます。その結果,PUR-CODEごとに,1の抽出結果のデータが集計されます。

    3.2の集計結果がHAVING句に適用されます。その結果,PUR-NUM列の値の合計が20以下のデータだけが集計されます。この集計結果が表式の結果となります。

(4) 例題

表式の指定例を例題を使って説明します。

例題

販売履歴表(SALESLIST)から,2011/9/6以降に商品コードP002の商品を購入した顧客の,顧客ID(USERID),商品コード(PUR-CODE),購入日(PUR-DATE)を検索します。

SELECT "USERID","PUR-CODE","PUR-DATE"
    FROM "SALESLIST"
        WHERE "PUR-DATE">=DATE'2011-09-06'
        AND "PUR-CODE"='P002'

下線部分が表式の指定です。