HAVING
この項目の指定はオプションです。この項目では、どの要約レコードを転送するかを指定します。
HAVING と WHERE の違いに注意してください。WHERE が、あるグループ内の 1 つ 1 つのレコードに対して働くのに対し、HAVING は要約レコード (各グループに関する要約情報が入っているレコード) に対してだけ働きます。
この項目を使用して、要約レコードを転送するためにその要約レコードが満たさなければ ならない 1 つまたは複数の条件を指定することができます。
条件には、要約レコードに対して行うテストを指定します。指定した条件は、すべての要約レコードに対してテストされ、そのテストにパスした 要約レコードだけが転送されます。すべての要約レコードを転送する場合には、この HAVING 項目はブランクのままにしてください。
条件の形式は次のとおりです。
function (field-name) test value
これは次のことを表しています。
- function
- これは SELECT に使用できる関数のうちの 1 つです。これらの関数の詳細については、このセクションの SELECT の説明を参照してください。
- field-name
- これは「転送元」に指定したレコード形式によって定義されたフィールドです。指定するフィールド名は、SELECT に指定されていなくても構いません。
- テスト
- これは、関数に対して使用する次のような比較のタイプです。
- =
- 等しい
- <> または ><
- 等しくない
- >
- より大
- >=
- 以上
- <
- より小
- <=
- 以下
- 値
- これは、あるフィールドに働く関数か、または定数です。定数、式、および テストの詳細については、WHEREを参照してください。 注: コンマは小数点のように扱われるため、数字の中にコンマを使用しないでください。テスト条件は、論理 AND または論理 OR を用いて組み合わせる ことができます。AND と OR の両方を指定した場合、AND 比較が 最初に行われます。比較は最高 50 まで指定できます。また、括弧を使用して 演算順序を変更したり、演算に説明を加えたりすることができます。例えば、次のように指定したとします。
COUNT(*) >=2 AND MAX(PRICE) > 100
この場合、グループに 2 つ以上のレコードを持ち、かつ PRICE の最大値が 100 より大きい要約レコードだけが転送されます。
必要なフィールドの名前がわからない場合は、参照を選択すれば、該当のレコードに入っているすべてのフィールド名のリストが表示されます。
各関数に戻される値のタイプ、長さ、桁数、および小数部分の桁数は、次のとおりです。Type Length Digit Decimal Places SUM Packed 16 31 (Same as tested field) AVG Packed 16 31 31 (Total of the digit and decimal places of the field) COUNT Binary 4 10 0 MAX (Same as tested field) MIN (Same as tested field)