最初のアイテムから数えて、次の30日以内にカウントを無視する

私は、期間中の最初のアイテムの購入から30日ごとに購読セットを持っています

PID    |     Date Purchased     |   User ID      | Owner ID
=======+========================+================+==============
1      |  1/1/2011              | 1              |  1
2      |  2/1/2011              | 1              |  1
3      |  19/1/2011             | 1              |  1
4      |  3/2/2011              | 1              |  1
5      |  5/1/2011              | 2              |  1
6      |  9/2/2011              | 2              |  1

私は、請求サイクルを含むテーブルを持っています

Owner ID | DATEBEGIN        | DATEEND  
=========+==================+============
1        | 1/2/2011         | 2/3/2011   

したがって、各所有者のIDについては、 dateend 値の前に30日間隔でピリオドを分類する必要があります。最初の購入から一意のユーザーIDで購入数を数え、次の30日間(この期間にカウントしないでください) 'ブック'を作成し、それ以降の最初の数を数えます。

したがって、2011年1月1日のPID(PurchaseID)1の場合、次の30日間は「書籍」となり無視されます。 しかしこれは以前の請求期間に入り、残りは次の請求期間に運ばれます 最初の3/30、次の27/30(2011年2月1日、19/1/2011は無視されますが、3/2/2011は予約されていないのでカウントされます)

Owner ID   | User ID   | PeriodBegin     | PeriodEnd    | Usage    | Comment
===========+===========+=====+===========+===============+=========+================
1          | 1         | 3/12/2010       | 1/1/2011     | 3/30     | 
1          | 1         | 2/1/2011        | 1/2/2011     | 27/30    |
1          | 1         | 2/2/2011        | 4/3/2011     | 29/30    |
1          | 1         | 5/3/2011        | 4/4/2011     | 1/30     |
1          | 2         | 2/2/2011        | 4/3/2011     | 25/30    |
1          | 2         | 5/3/2011        | 4/4/2011     | 5/30     |

最終的に私はこれらを次の

Owner ID  | PeriodBegin     | PeriodEnd    | Usage    |
==========+=================+==============+==========+
1         | 3/12/2010       | 1/1/2011     | 3/30     | 
1         | 2/1/2011        | 1/2/2011     | 27/30    |
1         | 2/2/2011        | 4/3/2011     | 54/30    |
1         | 5/3/2011        | 4/4/2011     | 6/30     |

だから私は最初の購入から30日以内に値を無視するようにMySQLに指示し、この '予約された'期間が終わった後に値を数える方法を見つけ出そうとしています。

理解しやすくするために、私はmp3サブスクリプションに類推しました。最初のテーブルは、レコード会社からディストリビューター(各自が独自の所有者IDとエンドユーザーごとに複数のアカウント(ユーザーID)を持つ)から購入することができます。 だから、MP3の最初の購入の中で、彼らは無制限のmp3をダウンロードする30日間のサブスクリプションサービスを持っています。 2番目の最後の表は請求スケジュールです。そのため、請求期間の1日前に曲を購入すれば、1日分のmp3を課金するのは不公平なので、分割する必要があり、残高は翌月に請求されます。

1

答えはありません

0