Access。クエリで期間外のデータ数を算出したい場合には、どうしたいいの?
<Access:Not Between And>
クエリで、4月1日~4月10日のデータというように、抽出するためには、Between Andという比較演算子をつかうことで、抽出することができます。
抽出ができれば、データ件数を算出することは、容易ですね。
最初に、T参加者得点テーブルをつかって、抽出を確認しておきましょう。
得点が、50点から70点のデータを抽出するクエリをつくることにします。
作成タブのクエリデザインをクリックします。
全てのフィールドをつかってクエリをつくります。
得点が、50点から70点のデータを抽出したいので、得点フィールドの抽出条件の行に「Between 50 And 70」と設定します。
あとは、実行して確認してみましょう。
このように、50点から70点の間のデータを抽出することができました。
Accessのクエリでは、「Between~And」をつかうことで期間の抽出をすることができます。
ここからが、本題。その逆。期間外の抽出をして、データの件数を算出するにはどうすればいいのでしょうか?
今回の得点のように、0~100と最低点と最高点の範囲が決まっている場合ならば、0~49と71~100というように、二つの条件をOR条件で設定すれば、抽出することができます。
次のように、「抽出条件」と「または」に設定します。
では、実行して確認しておきましょう。
抽出することはできました。
しかし、最低値や最高値が決まっていない場合や、小数点の場合など、OR条件では、対応するのが難しくなってしまいますし、同じような設定を2行設定するもの、面倒です。
そもそも単純に、「期間外」を抽出する方法を知っていれば、いいわけです。
その方法が、「Between~ And」にNOTをつけることで、「~でない」という条件にすることができます。
抽出条件を「Not (Between 50 And 70)」と変更してみます。
まずは実行して確認してみましょう。
先程、OR条件で設定したのと同じ結果で、抽出することができました。
このように、Notを使うことで、「~ではない」という条件にすることができますので、知っていると、いいかもしれませんね。
余談ですが、なんでも先頭にNotを付ければいいわけではありません。
「空白ではない」という条件で抽出したい場合は、「Is Not Null」と設定します。
真ん中に、Notが入ることもあります。