-PR-
解決済み

【mySQL】会計履歴から来店時点の来店回数を調べ

  • すぐに回答を!
  • 質問No.9373615
  • 閲覧数77
  • ありがとう数3
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 100% (2/2)

【mySQL】会計履歴から来店時点の来店回数を調べたい

新しいフランスパンの開発のために
過去のフランスパンの購入者情報を調べたいです。
ほしい情報は、購入者と購入日、商品、購入時点での来店回数です。

【会計履歴テーブル】
会計id|購入日|購入者|商品名|来店フラグ
00001|2015/4/01|Aさん|食パン|1
00002|2015/4/01|Bさん|食パン|1
00003|2015/4/01|Cさん|食パン|1
00004|2015/4/15|Bさん|フランスパン(ハード系)|1
00005|2015/4/23|Aさん|菓子パン|1
00006|2015/4/26|Aさん|フランスパン(ハード系)|1
00007|2015/5/07|Bさん|食パン|1
00008|2015/5/10|Bさん|菓子パン|0
00009|2015/5/12|Cさん|フランスパン(ソフト系)|1
00010|2015/5/13|Bさん|フランスパン(ソフト系)|1
00011|2015/5/13|Cさん|食パン|1
00012|2015/5/20|Bさん|菓子パン|1


会計履歴テーブルから次のようにSQLを作って
フランスパンの購入者を絞りこめるところまではできました。

Select * From 会計履歴テーブル
Where 商品名 IN ('フランスパン(ハード系)', 'フランスパン(ソフト系)');

【フランスパン購入者一覧】
会計id|購入日|購入者|商品名
00004|2015/4/15|Bさん|フランスパン(ハード系)
00006|2015/4/26|Aさん|フランスパン(ハード系)
00009|2015/5/12|Cさん|フランスパン(ソフト系)
00010|2015/5/13|Bさん|フランスパン(ソフト系)


ここに来店回数を追加して下記のような表を作りたいのです。
【フランスパン購入者一覧】
会計id|購入日|購入者|商品名|来店回数
00004|2015/4/15|Bさん|フランスパン(ハード系)|2回
00006|2015/4/26|Aさん|フランスパン(ハード系)|3回
00009|2015/5/12|Cさん|フランスパン(ソフト系)|2回
00010|2015/5/13|Bさん|フランスパン(ソフト系)|4回


会計履歴テーブルに来店フラグを持っていて
来店したかどうかは来店フラグで見ていましたので
購入者でGROUP化して、SUM(来店フラグ)しましたが、ほしい形になりません。

どのようなSQL文にしたらいいでしょうか。
考え方だけでもヒントを頂けると助かります。
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.2
レベル13

ベストアンサー率 26% (178/678)

Select *,
(
select count(会計id) from 会計履歴テーブル as kaikei2
where
kaikei2.購入者= kaikei1.購入者
and kaikei2.購入日<= kaikei1.購入日
and kaikei2.来店フラグ= 1
) as 来店累計回数
From 会計履歴テーブル as kaikei1
Where
kaikei1.商品名 IN ('フランスパン(ハード系)', 'フランスパン(ソフト系)')
and kaikei1.来店フラグ = 1;
補足コメント
oktksa

お礼率 100% (2/2)

これは、相関サブクエリってものでしょうか。
投稿日時 - 2017-09-13 13:23:31
お礼コメント
oktksa

お礼率 100% (2/2)

muuming2001様
ご回答ありがとうございます。

これです!欲しい情報がとれました。
さすがです。ありがとうございます!!

カラムにSELECT文が使えるなんて知りませんでした。。。
もっと勉強します。
投稿日時 - 2017-09-13 13:19:17

その他の回答 (全1件)

  • 回答No.1
レベル13

ベストアンサー率 26% (178/678)

最終的にどんな表にしたいのかイマイチ不明かと思います。

来店回数とは何でしょうか?
00004|2015/4/15|Bさん|フランスパン(ハード系)|2回
00010|2015/5/13|Bさん|フランスパン(ソフト系)|4回

なぜ2回と4回に?

来店フラグって何も見ない?

>>ほしい形になりません。
最終的にほしい形を途中経過無しに、言葉で書いていただいたほうがわかり良いかも?
お礼コメント
oktksa

お礼率 100% (2/2)

回答ありがとうございます。

すみません。言葉足らずで申し訳ないです。

定義としては
・来店回数は、フランスパンを買った時点での、初回来店からカウントしてそのお客様がお店にいらした回数です。
・来店フラグは、1が「来店あり」で、0が「来店なし」です。


2回と4回になる理由としては、フランスパン購入時点ごとに初回来店から来店ありの会計数をカウントしています。

例えば、Bさんは、
2015/4/15に、フランスパン(ハード系)を
2015/5/13に、フランスパン(ソフト系)を
買っています。

会計履歴テーブルを見ると、
Bさんは
2015/4/15にフランスパンを買った時点では
2015/4/1に食パンを買いにきてくださっているので
2回目の来店となります。

同様に
2015/5/13にフランスパンを買った時点では
4/1の初回来店からカウントして5回の会計がありますが
5/10の来店フラグが0(来店なし)なので、4回の来店となります。


最終的にほしいのは、フランスパンを購入した
購入者、購入日、商品名、購入時点での来店した回数です。
購入者の重複があっても構いません。


宜しくお願い致します。
投稿日時 - 2017-09-12 11:28:51


このQ&Aのテーマ
このQ&Aで解決しましたか?
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A
このQ&Aにこう思った!同じようなことあった!感想や体験を書こう
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-

特集


抽選で合計100名様にプレゼント!

ピックアップ

ページ先頭へ