這一個是非常棘手的,我一直在撓我的頭一整天。MySQL按比例計算不同的值在上個期間
我有一個包含一個表計費週期
ID | DATEBEGIN | DATEEND | CUSTOMER_ID
=======+===========+==========+=================
1 | 1/1/2011 | 30/1/2011 | 1
我有一個包含「子客戶
ID | NAME
=======+===========
1 | JOHN
2 | JACK
3 | Elwood
我有一個包含在訂閱購買的物品表(批發帳戶表
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
所以我想計算'信用'扣除他們的帳戶。每個'子客戶'都是。
因此在結算週期結束時(第一張表格的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
輸出因此應該
CUSTOMER_ID | BILLING CREDITS
============+========================
1 | 25/30
我都數不過來它按比例,以前是不公平的,即使他們購買之前,開票日期的項目1天到賬單的一個完整週期
你確定你的訂閱不通過'1'偏移?你除以'30',這意味着'1'和'30'都包含在內,但客戶'4'在'28','29'和'30'上有效,這使得'3'天,而不是'2' '。 – Quassnoi 2011-12-18 15:25:06
我相信你是對的我會用正確的偏移量更新它 – Akshat 2011-12-18 15:52:46