Tips一定の「期間」を記録したレコードが多数ある場合に、その期間が重複していることをチェックし、抽出する方法についてです。ここでの重複とは「期間のうち一部でも重複している」という状態を指します。例として右のようなテーブルを用るものとします。さまざまなイベントが記録されていて、「開始日」と「終了日」という列によりその期間が定められています。当然ですが終了日は開始日以降の日付となっています。実際にこれらの期間がどのように重なっているのかを整理してみると次のようになります。3つがあることがわかります。期間の重複判定について判定の実例を挙げる前に、期間の重複の判定について整理してみます。重複するパターンを列記するとかえってややこしくなりますので、先に重複しないパターンを示します。それは下記の2パターンです。イベントAの終了日より後にイベントBの開始日を迎える」ことが「期間が重複しない」条件となります。イベントB開開始日」となります。反対に、この条件を満たさなければ期間は重複します。イベントB開開始日」これが「期間が重複する」条件です。難しいですが、ピンとこない場合はさまざまな重複例を挙げるなどして検討してみてください。上記の内容を踏まえて、クエリで各レコード(イベント)に対し、重複の有無を示す値を表示してみます。その例の1つとして、Dcount関数を用いて上記の条件を適用し、各イベントと期間が重複するイベントの数を表示してみます。[催事コード]」という部分がないと、自らのイベントを1つと数えてしまうので注意してください。データシートビューです。「LLサイズ婦人服バーゲン」に対し3つのイベントが重複していることが示されているなど、上記の図から読み取れる重複の状況と一致していることがわかります。別の例としてサブクエリで重複をチェックし、重複の有無のみを表示してみます。催事テーブル.終了日>=催事テーブル_1.開始日),"有","無")データシートビューです。別の例として、期間が重複するイベントの組み合わせをすべて求めるクエリを作成してみます。レコードが多い場合は、他のレコードと期間の重複があることがわかっても、どのイベントと重複しているのか特定するのが容易でありませんのでこちらの方が適当かと思います。同一のテーブルを2つ置いて抽出する形になります。複雑ですが注意してみてください。ちなみに抽出条件の「>[催事テーブル].[催事コード]」の部分ですが、ここの不等号を「<>」にしてしまうと同じ組み合わせが2回ずつ出てしまいます。データシートビューです。読者になるこのブログについてスポンサーリンク注目記事サイト内検索スポンサーリンクはてなブログをはじめよう!accs2014さんは、はてなブログを使っています。ブログを報告する引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。