質問するログイン新規登録

質問編集履歴

2

文章の補足

2019/03/08 03:08

投稿

shinaka
shinaka

スコア18

title CHANGED
File without changes
body CHANGED
@@ -4,7 +4,8 @@
4
4
 
5
5
  Classic ASP + MySQLにてシステムを作成しております。
6
6
  下記のようなマスタテーブルに、期間持ちのデータが存在しています。
7
- No1No2のように、空白期間が存在する場合があります。
7
+ **ID1ID2のように、空白期間が存在する場合があります。**
8
+ **ID2~ID3のように、2レコードに分かれていたとしても一つの期間として扱いたい場合もあります**
8
9
 
9
10
  ■有効期限マスタ
10
11
  ```SQL

1

CREATE TABLEとINSERT文を追記、日付の記載ミスを修正しました

2019/03/08 03:08

投稿

shinaka
shinaka

スコア18

title CHANGED
File without changes
body CHANGED
@@ -7,17 +7,28 @@
7
7
  No1~No2のように、空白期間が存在する場合があります。
8
8
 
9
9
  ■有効期限マスタ
10
+ ```SQL
10
- No1.2018/1~2018/5
11
+ CREATE TABLE m_rireki (
11
- No2.2018/7~2018/9
12
- No3.2018/10~2018/12
12
+ id INT NOT NULL PRIMARY KEY,
13
+ st_ymd VARCHAR(6),
14
+ ed_ymd VARCHAR(6)
15
+ );
13
16
 
17
+ insert into m_rireki
18
+ (id,st_ymd,ed_ymd) values
19
+ (1,'201801','201805'),
20
+ (2,'201807','201809'),
21
+ (3,'201810','201812');
22
+
23
+ ```
24
+
14
25
  画面で入力された期間の値が、有効な期間内かどうかチェックを行いたいです。
15
26
 
16
27
  ■入力例
17
28
  2017/11~2018/2 → 無効
18
29
  2018/1~2018/4 → 有効
19
30
  2018/4~2018/8 → 無効
20
- 2018/8~2015/12 → 有効
31
+ 2018/8~2018/12 → 有効
21
32
 
22
33
  一応考えついた方法としては
23
34
  1.画面で入力された開始期間以前、かつマスタの開始月が一番大きいデータを取得し、開始年月と終了年月をそれぞれ変数に保持。