これは非常に難しいことですが、私は一日中頭を掻いています。最後の期間に別の値を計算するMySQLプロラスター
私は「サブ顧客の
ID | NAME
=======+===========
1 | JOHN
2 | JACK
3 | Elwood
を含むテーブルを持っている
ID | DATEBEGIN | DATEEND | CUSTOMER_ID
=======+===========+==========+=================
1 | 1/1/2011 | 30/1/2011 | 1
請求期間を含むテーブルを持っている私は、サブスクリプションで購入したアイテムを含むテーブル(卸売アカウント
を持っていますID | DATE | SUBCUSTOMER_ID | CUSTOMER ID
=======+===========+================+==============
1 | 15/1/2011 | 1 | 1
2 | 18/1/2011 | 1 | 1
3 | 25/1/2011 | 2 | 1
4 | 28/1/2011 | 3 | 1
私は彼らのアカウントから控除するために「クレジット」を数えたいので、サブスリptionは 'サブ顧客'ごとです。
したがって、請求期間の終了時(最初の表から30/1/2011)です。私は別個のサブ顧客をカウントする必要があります(3つあります)。彼らは、請求期間中に最初に購入した分の按分額を請求されます。
Days Having Subscription | SUBCUSTOMER_ID | Pro Rata Rate | CUSTOMER_ID
==========================+===================+==================+==============
3 | 3 | 3/30 | 1
6 | 2 | 6/30 | 1
16 | 1 | 16/30 | 1
出力は、したがって、私は以前に彼らが前に請求日にアイテム1日を購入しても、全期間を請求する不公平だろう、按分それをカウントする必要があり
CUSTOMER_ID | BILLING CREDITS
============+========================
1 | 25/30
する必要があります
あなたは必ずあなたのサブスクリプションが '1'によって相殺されていませんか? '1'と' 30 'の両方を含む '30'で割りますが、' 28'、 '29'と' 30'で顧客 '4'がアクティブだった場合、' 2'ではなく '3'日になります'。 – Quassnoi
私は正しいと信じています。正しいオフセットで更新します。 – Akshat