Microsoft Access 掲示板

一時的な日付範囲指定を含む日付データからの抽出 / 7

8 コメント
views
4 フォロー
7
hiroton 2021/08/23 (月) 09:54:19 f1def@f966d >> 2

例えば

開始日終了日単価
2021/08/01Null150
2021/08/052021/08/10120
2021/08/112021/08/19130
2021/08/20Null140

のようなデータの時、指定日=2021/08/15の場合

指定日付>=開始日 AND ISNULL(終了日)=FALSE で抽出

すると

開始日終了日単価
2021/08/052021/08/10120
2021/08/112021/08/19130

と、2レコードHITします

2レコード以上は範囲入力側の制御の時点で入れられない形にしています

これは、つまり、このようなレコードは存在しないということでしょうか?だとすると、終了日に値の存在が許されるレコードは1つだけという歪なテーブル構造なんでしょうか?

質問の解自体はhatenaさんの回答の通りでしょう。ただ、手順や処理時間で見た簡略化は見込めないと思います。この観点から言えば

これ以上簡単にできる方法は

ないです

しかしながら、データ構造の観点から言えば、「一時的に変わる時」のデータは単純に追加するだけで済むというメリットができ、データ管理面での単純化なら見込めます

さらに言えば、既に指摘している通り、なぜ最終的なデータ構造でテーブルを作らないのか?という話になります。データ構造が単純で、データの取得もシンプルです
単純=「簡単」とは限らないですが、テーブル構造からはわからない独自ルールを運用するよりはよほど「簡単」でしょう。

単価情報を入力する側が期間限定明け後のデータ入力(ここでは8/11~8/19)を意識しなくてもいい形にしたいというものです

本当の主題はこれですよね?
ならば、職人芸のようなテーブル構造・データ取得を考えるよりも単純に「期間限定明け後のデータ入力(ここでは8/11~8/19)を」自動化したいと考えるべきでしょう

通報 ...