人は、紹介された友人が行った購入に対して 10% のコミッションを受け取ります。
2 つのテーブルがあります。
- 参照表
- 取引表
参照表
Person_id Referrer_id
3 1
4 1
5 1
6 2
取引表
Person_id Amount Action Date
3 100 Purchase 10-20-2011
4 200 Purchase 10-21-2011
6 400 Purchase 12-15-2011
3 200 Purchase 12-30-2011
1 50 Commision 01-01-2012
1 10 Cm_Bonus 01-01-2012
2 20 Commision 01-01-2012
Referrer_Person_id=1 の次の結果セットを取得する方法
Month Ref_Pur Earn_Comm Todate_Earn_Comm BonusRecvd Paid Due
10-2011 300 30 30 0 0 30
11-2011 0 0 30 0 0 30
12-2011 200 20 50 0 0 50
01-2012 0 0 50 10 50 0
上記で使用されるラベルは次のとおりです。
Ref_Pur = Total Referred Friend's Purchase for that month
Earn_Comm = 10% Commision earned for that month
Todate_Earn_Comm = Total Running Commision earned upto that month
私が書いたMYSQLコード
SELECT dx1.month,
dx1.ref_pur,
dx1.earn_comm,
( @cum_earn := @cum_earn + dx1.earn_comm ) as todate_earn_comm
FROM
(
select date_format(`date`,'%Y-%m') as month,
sum(amount) as ref_pur ,
(sum(amount)*0.1) as earn_comm
from transaction tr, reference rf
where tr.person_id=rf.person_id and
tr.action='Purchase' and
rf.referrer_id=1
group by date_format(`date`,'%Y-%m')
order by date_format(`date`,'%Y-%m')
)as dx1
JOIN (select @cum_earn:=0)e;
クエリを結合して、参照テーブルに依存しない BonusRecvd、Paid、Due trnsactions も含めるにはどうすればよいですか?
また、その月に trnx が発生していない場合でも、月 '11-2011' の行を生成します