forum.bitel.ru http://forum.bitel.ru/ |
|
Баланс абонента http://forum.bitel.ru/viewtopic.php?f=22&t=4656 |
Страница 1 из 1 |
Автор: | stanislav [ 13 окт 2010, 14:17 ] |
Заголовок сообщения: | Баланс абонента |
У меня вопрос по балансу абонентов. Дело в том, что записи в таблице contract_balance в текущем месяце появляются только после того как баланс абонента изменился, например, поступил платеж. А мне нужно, наоборот, вычислить тех, кто не платил. Я делаю примерно такой запрос: SELECT summa1+summa2-summa3-summa4 FROM contract_balance WHERE yy=2010 AND mm=10 и получаю незначительное на сегодняшний день кол-во договоров. Вопрос в том, как получить полный список договоров с их балансом. Версия биллинга 4.6 |
Автор: | dimOn [ 13 окт 2010, 14:20 ] |
Заголовок сообщения: | Re: Баланс абонента |
Ну так смотрите за прошлый, исходящий остаток. Что значит "вычислить тех, кто не платил". |
Автор: | skn [ 13 окт 2010, 14:54 ] |
Заголовок сообщения: | Re: Баланс абонента |
"кто не платил" - это те кто не платил в этом месяце? если да то тогда смотрите таблицу с платежами |
Автор: | stanislav [ 13 окт 2010, 15:07 ] |
Заголовок сообщения: | Re: Баланс абонента |
"Вычислить тех, кто не платит" означает определить абонентов с отрицательным балансом. Например менее -10 руб. |
Автор: | skyb [ 13 окт 2010, 15:12 ] |
Заголовок сообщения: | Re: Баланс абонента |
может это? |
Автор: | Cromeshnic [ 14 окт 2010, 10:13 ] |
Заголовок сообщения: | Re: Баланс абонента |
CREATE FUNCTION `get_balance`(contract int(10) unsigned) RETURNS decimal(10,2) READS SQL DATA COMMENT 'returns current balance by cid' BEGIN DECLARE balance decimal(10,2); SELECT summa1+summa2-summa3-summa4 INTO balance FROM contract_balance where cid=contract and (yy<<4)+mm<=(year(now())<<4)+month(now()) ORDER BY yy desc, mm desc LIMIT 0,1; RETURN balance; END |
Автор: | stanislav [ 14 окт 2010, 12:08 ] |
Заголовок сообщения: | Re: Баланс абонента |
Можно немного подробнее. Что это, и как им воспользоваться? |
Автор: | Cromeshnic [ 14 окт 2010, 13:46 ] |
Заголовок сообщения: | Re: Баланс абонента |
Это SQL-запрос на создание сохранённой функции с именем get_balance(cid), которая возвращает текущий баланс договора. Удобно потом писать в запросах. Например: Код: select c.id, c.title, get_balance(c.id) from contract c;
|
Автор: | stanislav [ 14 окт 2010, 15:56 ] |
Заголовок сообщения: | Re: Баланс абонента |
Большое спасибо за консультацию, запрос работает. |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |