Вот алгоритм:
Код: Выделить всё
#I. Выборка клиентов, кому необходимо поставить кредит (обязательно делать в предыдущий месяц!)
use abills;
create table credit_20120831 select users.uid,users.credit,dv_main.tp_id,tarif_plans.month_fee
from users,dv_main,tarif_plans,bills
where bills.uid=dv_main.uid and bills.uid=users.uid and dv_main.tp_id = tarif_plans.id and bills.deposit + users.credit between 1 and tarif_plans.month_fee -1 and tarif_plans.month_fee > 0;
#II. Установка кредитов. Желательно делать в ночь на 1 число
use abills;
update users,credit_20120831 set users.credit = users.credit + credit_20120831.month_fee where users.uid=credit_20120831.uid;
#III. Снятие кредитов. Делать в ночь на первый будний день
use abills;
update users,credit_20120831 set users.credit=credit_20120831.credit where users.uid=credit_20120831.uid;