Это довольно сложно, я весь день ломал голову.
У меня есть таблица с периодами выставления счетов
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 день до даты выставления счета