質問編集履歴

7

PK修正

2019/06/12 04:40

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -52,7 +52,7 @@
52
52
 
53
53
  定期No varchar(12) PRIMARY KEY,
54
54
 
55
- 定期商品No int PRIMARY KEY,
55
+ 定期商品No int not NULL,
56
56
 
57
57
  商品No varchar(11)
58
58
 
@@ -64,7 +64,7 @@
64
64
 
65
65
  定期No varchar(12) PRIMARY KEY,
66
66
 
67
- 定期履歴連番 int PRIMARY KEY,
67
+ 定期履歴連番 int not NULL,
68
68
 
69
69
  解約フラグ int,
70
70
 

6

;を追加

2019/06/12 04:40

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -10,7 +10,7 @@
10
10
 
11
11
  電話番号 varchar(20) not NULL
12
12
 
13
- )
13
+ );
14
14
 
15
15
 
16
16
 
@@ -22,7 +22,7 @@
22
22
 
23
23
  購入日 datetime
24
24
 
25
- )
25
+ );
26
26
 
27
27
 
28
28
 
@@ -34,7 +34,7 @@
34
34
 
35
35
  商品No varchar(11)
36
36
 
37
- )
37
+ );
38
38
 
39
39
 
40
40
 
@@ -44,7 +44,7 @@
44
44
 
45
45
  ユーザーCD varchar(12)
46
46
 
47
- )
47
+ );
48
48
 
49
49
 
50
50
 
@@ -56,7 +56,7 @@
56
56
 
57
57
  商品No varchar(11)
58
58
 
59
- )
59
+ );
60
60
 
61
61
 
62
62
 
@@ -72,47 +72,47 @@
72
72
 
73
73
  定期終了日 datetime
74
74
 
75
- )
75
+ );
76
76
 
77
77
  ```
78
78
 
79
79
  ```SQL
80
80
 
81
- insert into ユーザー values ('100000000001','テスト太郎1','09011112222')
81
+ insert into ユーザー values ('100000000001','テスト太郎1','09011112222');
82
-
82
+
83
- insert into ユーザー values ('100000000002','テスト太郎2','09111112222')
83
+ insert into ユーザー values ('100000000002','テスト太郎2','09111112222');
84
-
85
-
86
-
84
+
85
+
86
+
87
- insert into 商品 values ('11111111111','100000000001','2018-12-11')
87
+ insert into 商品 values ('11111111111','100000000001','2018-12-11');
88
-
88
+
89
- insert into 商品 values ('11111111112','100000000002','2018-12-12')
89
+ insert into 商品 values ('11111111112','100000000002','2018-12-12');
90
-
91
-
92
-
90
+
91
+
92
+
93
- insert into 識別 values ('12345678901234567890','MKN1111','11111111111')
93
+ insert into 識別 values ('12345678901234567890','MKN1111','11111111111');
94
-
94
+
95
- insert into 識別 values ('12345678901234567891','MKN1111','11111111111')
95
+ insert into 識別 values ('12345678901234567891','MKN1111','11111111111');
96
-
96
+
97
- insert into 識別 values ('12345678901234567892','MKN1111','11111111112')
97
+ insert into 識別 values ('12345678901234567892','MKN1111','11111111112');
98
-
99
-
100
-
98
+
99
+
100
+
101
- insert into 定期 values ('555555555555','100000000001')
101
+ insert into 定期 values ('555555555555','100000000001');
102
-
103
-
104
-
102
+
103
+
104
+
105
- insert into 定期商品 values ('555555555555','1','11111111111')
105
+ insert into 定期商品 values ('555555555555','1','11111111111');
106
-
107
-
108
-
106
+
107
+
108
+
109
- insert into 定期履歴 values ('555555555555','1','0','2016/1/1','2016/12/31')
109
+ insert into 定期履歴 values ('555555555555','1','0','2016/1/1','2016/12/31');
110
-
110
+
111
- insert into 定期履歴 values ('555555555555','2','0','2017/1/1','2017/12/31')
111
+ insert into 定期履歴 values ('555555555555','2','0','2017/1/1','2017/12/31');
112
-
112
+
113
- insert into 定期履歴 values ('555555555555','3','0','2018/1/1','2018/12/31')
113
+ insert into 定期履歴 values ('555555555555','3','0','2018/1/1','2018/12/31');
114
-
114
+
115
- insert into 定期履歴 values ('555555555555','4','0','2019/1/1','2019/12/31')
115
+ insert into 定期履歴 values ('555555555555','4','0','2019/1/1','2019/12/31');
116
116
 
117
117
  ```
118
118
 

5

指摘を反映

2019/06/12 04:33

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -1,84 +1,132 @@
1
1
  ◎テーブルの説明
2
2
 
3
- ○「ユーザー」テーブル
4
-
5
- ユーザーCD(PK)
6
-
7
- ・氏名
8
-
9
- ・電話番号
10
-
11
- などなど・・。
12
-
13
-
14
-
15
- ○「商品」テーブル
16
-
17
- 商品No(PK)
18
-
19
- ・ユーザーCD
20
-
21
- ・購入日
22
-
23
- などなど・・。
24
-
25
-
26
-
27
- ○「識別」テーブル
28
-
29
- 識別No(PK)
30
-
31
- ・商品No
32
-
33
-
34
-
35
- ※「商品」テーブルの下の階層。
36
-
37
- 例:「りんごパック」という商品があり、3つのリンゴがあって、それぞれに識別Noが振られる。
38
-
39
-
40
-
41
- ○「定期」テーブル
42
-
43
- 定期No(PK)
44
-
45
- ユーザーCD
46
-
47
-
48
-
49
- ※定期購入を管理するテーブル
50
-
51
-
52
-
53
- ○「定期商品」テーブル
54
-
55
- 定期No(PK)
56
-
57
- ・定期商品No(PK)
58
-
59
- ・商品No
60
-
61
-
62
-
63
- ※「商品」テーブルと「定期」テーブルを結合するためのテーブル
64
-
65
-
66
-
67
- ○「定期履歴」テーブル
68
-
69
- ・定期No(PK)
70
-
71
- 定期履歴連番(PK)
72
-
73
- ・解約フラグ
74
-
75
- ・定期開始日
76
-
77
- ・定期終了日
78
-
79
-
80
-
81
- ※「定期」ーブルの下の階層。
3
+ ```SQL
4
+
5
+ create table ユーザー(
6
+
7
+ ユーザーCD varchar(12) PRIMARY KEY,
8
+
9
+ 氏名 varchar(40) not NULL,
10
+
11
+ 電話番号 varchar(20) not NULL
12
+
13
+ )
14
+
15
+
16
+
17
+ create table 商品(
18
+
19
+ 商品No varchar(11) PRIMARY KEY,
20
+
21
+ ユーザーCD varchar(12) ,
22
+
23
+ 購入日 datetime
24
+
25
+ )
26
+
27
+
28
+
29
+ create table 識別(
30
+
31
+ 識別No varchar(20) PRIMARY KEY,
32
+
33
+ 商品CD varchar(7) ,
34
+
35
+ 商品No varchar(11)
36
+
37
+ )
38
+
39
+
40
+
41
+ create table 定期(
42
+
43
+ 定期No varchar(12) PRIMARY KEY,
44
+
45
+ ユーザーCD varchar(12)
46
+
47
+ )
48
+
49
+
50
+
51
+ create table 定期商品(
52
+
53
+ 定期No varchar(12) PRIMARY KEY,
54
+
55
+ 定期商品No int PRIMARY KEY,
56
+
57
+ 商品No varchar(11)
58
+
59
+ )
60
+
61
+
62
+
63
+ create table 定期履歴(
64
+
65
+ 定期No varchar(12) PRIMARY KEY,
66
+
67
+ 定期履歴連番 int PRIMARY KEY,
68
+
69
+ 解約フラグ int,
70
+
71
+ 定期開始日 datetime,
72
+
73
+ 定期終了日 datetime
74
+
75
+ )
76
+
77
+ ```
78
+
79
+ ```SQL
80
+
81
+ insert into ユーザー values ('100000000001','スト太郎1','09011112222')
82
+
83
+ insert into ユーザー values ('100000000002','テスト太郎2','09111112222')
84
+
85
+
86
+
87
+ insert into 商品 values ('11111111111','100000000001','2018-12-11')
88
+
89
+ insert into 商品 values ('11111111112','100000000002','2018-12-12')
90
+
91
+
92
+
93
+ insert into 識別 values ('12345678901234567890','MKN1111','11111111111')
94
+
95
+ insert into 識別 values ('12345678901234567891','MKN1111','11111111111')
96
+
97
+ insert into 識別 values ('12345678901234567892','MKN1111','11111111112')
98
+
99
+
100
+
101
+ insert into 定期 values ('555555555555','100000000001')
102
+
103
+
104
+
105
+ insert into 定期商品 values ('555555555555','1','11111111111')
106
+
107
+
108
+
109
+ insert into 定期履歴 values ('555555555555','1','0','2016/1/1','2016/12/31')
110
+
111
+ insert into 定期履歴 values ('555555555555','2','0','2017/1/1','2017/12/31')
112
+
113
+ insert into 定期履歴 values ('555555555555','3','0','2018/1/1','2018/12/31')
114
+
115
+ insert into 定期履歴 values ('555555555555','4','0','2019/1/1','2019/12/31')
116
+
117
+ ```
118
+
119
+
120
+
121
+ ※テスト太郎1の持つ商品に付いている定期は、定期終了日が2019/12/31で解約フラグ0なので有効な定期がある。
122
+
123
+ 定期履歴連番3で止まっていたり、定期履歴連番4があっても解約フラグ1なら定期が切れている。
124
+
125
+ また、テスト太郎2の持つ商品には定期が付いていない。
126
+
127
+
128
+
129
+ ※「定期履歴」テーブルは「定期」テーブルの下の階層。
82
130
 
83
131
 
84
132
 
@@ -118,6 +166,8 @@
118
166
 
119
167
 
120
168
 
169
+ ```SQL
170
+
121
171
  select *
122
172
 
123
173
  from [商品]
@@ -142,6 +192,8 @@
142
192
 
143
193
  AND [定期履歴連番] = (SELECT MAX([定期履歴連番]) from [定期履歴] WHERE [定期].[定期No] = [定期履歴].[定期No]
144
194
 
195
+ ```
196
+
145
197
 
146
198
 
147
199
  結合のキーが足りないのか、LEFT JOINの使い方が違うのか、なかなかうまくいきません。
@@ -149,133 +201,3 @@
149
201
  うまくいく方法が分かりましたら、教えていただけないでしょうか。
150
202
 
151
203
  よろしくお願いします。
152
-
153
-
154
-
155
- ◎補足をうけ、クリエイト文とインサート文
156
-
157
-
158
-
159
- ```SQL
160
-
161
- create table ユーザー(
162
-
163
- ユーザーCD varchar(12) not NULL,
164
-
165
- 氏名 varchar(40) not NULL,
166
-
167
- 電話番号 varchar(20) not NULL
168
-
169
- )
170
-
171
-
172
-
173
- create table 商品(
174
-
175
- 商品No varchar(11) not NULL,
176
-
177
- ユーザーCD varchar(12) ,
178
-
179
- 購入日 datetime
180
-
181
- )
182
-
183
-
184
-
185
- create table 識別(
186
-
187
- 識別No varchar(20) not NULL,
188
-
189
- 商品CD varchar(7) ,
190
-
191
- 商品No varchar(11)
192
-
193
- )
194
-
195
-
196
-
197
- create table 定期(
198
-
199
- 定期No varchar(12) not NULL,
200
-
201
- ユーザーCD varchar(12)
202
-
203
- )
204
-
205
-
206
-
207
- create table 定期商品(
208
-
209
- 定期No varchar(12) not NULL,
210
-
211
- 定期商品No int not NULL,
212
-
213
- 商品No varchar(11)
214
-
215
- )
216
-
217
-
218
-
219
- create table 定期履歴(
220
-
221
- 定期No varchar(12) not NULL,
222
-
223
- 定期履歴連番 int not NULL,
224
-
225
- 解約フラグ int,
226
-
227
- 定期開始日 datetime,
228
-
229
- 定期終了日 datetime
230
-
231
- )
232
-
233
- ```
234
-
235
- ```SQL
236
-
237
- insert into ユーザー values ('100000000001','テスト太郎1','09011112222')
238
-
239
- insert into ユーザー values ('100000000002','テスト太郎2','09111112222')
240
-
241
-
242
-
243
- insert into 商品 values ('11111111111','100000000001','2018-12-11')
244
-
245
- insert into 商品 values ('11111111112','100000000002','2018-12-12')
246
-
247
-
248
-
249
- insert into 識別 values ('12345678901234567890','MKN1111','11111111111')
250
-
251
- insert into 識別 values ('12345678901234567891','MKN1111','11111111111')
252
-
253
- insert into 識別 values ('12345678901234567892','MKN1111','11111111112')
254
-
255
-
256
-
257
- insert into 定期 values ('555555555555','100000000001')
258
-
259
-
260
-
261
- insert into 定期商品 values ('555555555555','1','11111111111')
262
-
263
-
264
-
265
- insert into 定期履歴 values ('555555555555','1','0','2016/1/1','2016/12/31')
266
-
267
- insert into 定期履歴 values ('555555555555','2','0','2017/1/1','2017/12/31')
268
-
269
- insert into 定期履歴 values ('555555555555','3','0','2018/1/1','2018/12/31')
270
-
271
- insert into 定期履歴 values ('555555555555','4','0','2019/1/1','2019/12/31')
272
-
273
- ```
274
-
275
-
276
-
277
- ※テスト太郎1の持つ商品に付いている定期は、定期終了日が2019/12/31で解約フラグ0なので有効な定期がある。
278
-
279
- 定期履歴連番3で止まっていたり、定期履歴連番4があっても解約フラグ1なら定期が切れている。
280
-
281
- また、テスト太郎2の持つ商品には定期が付いていない。

4

書き方を変更

2019/06/12 00:42

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -156,6 +156,8 @@
156
156
 
157
157
 
158
158
 
159
+ ```SQL
160
+
159
161
  create table ユーザー(
160
162
 
161
163
  ユーザーCD varchar(12) not NULL,
@@ -228,7 +230,9 @@
228
230
 
229
231
  )
230
232
 
231
-
233
+ ```
234
+
235
+ ```SQL
232
236
 
233
237
  insert into ユーザー values ('100000000001','テスト太郎1','09011112222')
234
238
 
@@ -266,6 +270,8 @@
266
270
 
267
271
  insert into 定期履歴 values ('555555555555','4','0','2019/1/1','2019/12/31')
268
272
 
273
+ ```
274
+
269
275
 
270
276
 
271
277
  ※テスト太郎1の持つ商品に付いている定期は、定期終了日が2019/12/31で解約フラグ0なので有効な定期がある。

3

簡単な補足を追加

2019/06/11 02:52

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -265,3 +265,11 @@
265
265
  insert into 定期履歴 values ('555555555555','3','0','2018/1/1','2018/12/31')
266
266
 
267
267
  insert into 定期履歴 values ('555555555555','4','0','2019/1/1','2019/12/31')
268
+
269
+
270
+
271
+ ※テスト太郎1の持つ商品に付いている定期は、定期終了日が2019/12/31で解約フラグ0なので有効な定期がある。
272
+
273
+ 定期履歴連番3で止まっていたり、定期履歴連番4があっても解約フラグ1なら定期が切れている。
274
+
275
+ また、テスト太郎2の持つ商品には定期が付いていない。

2

インサート文も追加

2019/06/11 02:24

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -227,3 +227,41 @@
227
227
  定期終了日 datetime
228
228
 
229
229
  )
230
+
231
+
232
+
233
+ insert into ユーザー values ('100000000001','テスト太郎1','09011112222')
234
+
235
+ insert into ユーザー values ('100000000002','テスト太郎2','09111112222')
236
+
237
+
238
+
239
+ insert into 商品 values ('11111111111','100000000001','2018-12-11')
240
+
241
+ insert into 商品 values ('11111111112','100000000002','2018-12-12')
242
+
243
+
244
+
245
+ insert into 識別 values ('12345678901234567890','MKN1111','11111111111')
246
+
247
+ insert into 識別 values ('12345678901234567891','MKN1111','11111111111')
248
+
249
+ insert into 識別 values ('12345678901234567892','MKN1111','11111111112')
250
+
251
+
252
+
253
+ insert into 定期 values ('555555555555','100000000001')
254
+
255
+
256
+
257
+ insert into 定期商品 values ('555555555555','1','11111111111')
258
+
259
+
260
+
261
+ insert into 定期履歴 values ('555555555555','1','0','2016/1/1','2016/12/31')
262
+
263
+ insert into 定期履歴 values ('555555555555','2','0','2017/1/1','2017/12/31')
264
+
265
+ insert into 定期履歴 values ('555555555555','3','0','2018/1/1','2018/12/31')
266
+
267
+ insert into 定期履歴 values ('555555555555','4','0','2019/1/1','2019/12/31')

1

create文を取り敢えず追加

2019/06/11 02:13

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -149,3 +149,81 @@
149
149
  うまくいく方法が分かりましたら、教えていただけないでしょうか。
150
150
 
151
151
  よろしくお願いします。
152
+
153
+
154
+
155
+ ◎補足をうけ、クリエイト文とインサート文
156
+
157
+
158
+
159
+ create table ユーザー(
160
+
161
+ ユーザーCD varchar(12) not NULL,
162
+
163
+ 氏名 varchar(40) not NULL,
164
+
165
+ 電話番号 varchar(20) not NULL
166
+
167
+ )
168
+
169
+
170
+
171
+ create table 商品(
172
+
173
+ 商品No varchar(11) not NULL,
174
+
175
+ ユーザーCD varchar(12) ,
176
+
177
+ 購入日 datetime
178
+
179
+ )
180
+
181
+
182
+
183
+ create table 識別(
184
+
185
+ 識別No varchar(20) not NULL,
186
+
187
+ 商品CD varchar(7) ,
188
+
189
+ 商品No varchar(11)
190
+
191
+ )
192
+
193
+
194
+
195
+ create table 定期(
196
+
197
+ 定期No varchar(12) not NULL,
198
+
199
+ ユーザーCD varchar(12)
200
+
201
+ )
202
+
203
+
204
+
205
+ create table 定期商品(
206
+
207
+ 定期No varchar(12) not NULL,
208
+
209
+ 定期商品No int not NULL,
210
+
211
+ 商品No varchar(11)
212
+
213
+ )
214
+
215
+
216
+
217
+ create table 定期履歴(
218
+
219
+ 定期No varchar(12) not NULL,
220
+
221
+ 定期履歴連番 int not NULL,
222
+
223
+ 解約フラグ int,
224
+
225
+ 定期開始日 datetime,
226
+
227
+ 定期終了日 datetime
228
+
229
+ )