• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:【mySQL】会計履歴から来店時点の来店回数を調べ)

mySQLで会計履歴から来店時点の来店回数を調べる方法

このQ&Aのポイント
  • 新しいフランスパンの開発のために、過去のフランスパンの購入者情報を調べる方法について教えてください。
  • 購入者と購入日、商品、購入時点での来店回数を取得したいです。
  • 現在のSQLは購入者でGROUP化してSUM(来店フラグ)していますが、ほしい形にならないので、どのようなSQL文にすれば良いか教えてください。

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

  • ベストアンサー
回答No.2

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
質問者

お礼

muuming2001様 ご回答ありがとうございます。 これです!欲しい情報がとれました。 さすがです。ありがとうございます!! カラムにSELECT文が使えるなんて知りませんでした。。。 もっと勉強します。

oktksa
質問者

補足

これは、相関サブクエリってものでしょうか。

その他の回答 (1)

回答No.1

最終的にどんな表にしたいのかイマイチ不明かと思います。 来店回数とは何でしょうか? 00004|2015/4/15|Bさん|フランスパン(ハード系)|2回 00010|2015/5/13|Bさん|フランスパン(ソフト系)|4回 なぜ2回と4回に? 来店フラグって何も見ない? >>ほしい形になりません。 最終的にほしい形を途中経過無しに、言葉で書いていただいたほうがわかり良いかも?

oktksa
質問者

お礼

回答ありがとうございます。 すみません。言葉足らずで申し訳ないです。 定義としては ・来店回数は、フランスパンを買った時点での、初回来店からカウントしてそのお客様がお店にいらした回数です。 ・来店フラグは、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回の来店となります。 最終的にほしいのは、フランスパンを購入した 購入者、購入日、商品名、購入時点での来店した回数です。 購入者の重複があっても構いません。 宜しくお願い致します。

関連するQ&A