質問編集履歴

1

誤字の修正、追記

2016/09/12 04:51

投稿

komaru13
komaru13

スコア13

test CHANGED
File without changes
test CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
 
6
6
 
7
- ```sql
7
+ ```CSV
8
8
 
9
9
  会員番号,来店日,媒体
10
10
 
@@ -36,13 +36,13 @@
36
36
 
37
37
  ```
38
38
 
39
- 上記のようなSQLがあります。
39
+ 上記のようなCSVがあります。
40
40
 
41
41
  テレビや雑誌をみて来た新規の人が、1ヶ月以内に再来店したら、自動的にポイントをあげるようにしたいのですが、どのように実現すればよいでしょうか?
42
42
 
43
43
 
44
44
 
45
- *上記SQLデータで言えば、会員番号633の人が該当します。
45
+ *上記CSVデータで言えば、会員番号633の人が該当します。
46
46
 
47
47
  *ポイントは、集計時に見れればよいので、データベースに保存する必要はありません。
48
48
 
@@ -53,3 +53,35 @@
53
53
  何か考え方のヒントや、参考になるページなどのアドバイスでもなんでも良いので、ご教授頂けたらと思います。
54
54
 
55
55
  よろしくお願いします。
56
+
57
+
58
+
59
+ **追記**
60
+
61
+
62
+
63
+ 皆様のアドバイスを元に、考えてみたところ、部分単位での結果はなんとか出すことが出来ました。
64
+
65
+
66
+
67
+ ```sql
68
+
69
+ select member_num,visitdate,
70
+
71
+ (select count(*)+1
72
+
73
+ from post b
74
+
75
+ where b.member_num = a.member_num
76
+
77
+ and b.visitdate < a.visitdate) as Rn
78
+
79
+ from post a having Rn = 2
80
+
81
+ ```
82
+
83
+ 上記コードで2回目の来店日を出すことが出来ました。
84
+
85
+ 要は、初めての来店日と2回目を比較して、1ヶ月以内ならポイントを付与したいのですが、ここから詰まってしまいました。(文法的にも合っているかどうかわかりませんが・・・)
86
+
87
+ Mysqlで実現出来るのかどうかわかりませんが、アドバイス頂けたらと思います。