BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 20 май 2024, 06:03

Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 32 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения: Re: Помогите с SQL запросом
СообщениеДобавлено: 30 мар 2011, 18:33 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 08 мар 2007, 20:44
Сообщения: 1570
Откуда: Челябинск
Карма: 18
в итоге благодаря snark родился следующий запрос
Код:
SELECT
   cnt.title,
   cnt.comment,
   cb.summa1,
   phone.phone1,
   phone.phone2,
   phone.phone3,
   phone.phone4,
   phone.phone5
FROM
    contract AS cnt
LEFT JOIN
    contract_balance AS cb
ON (cnt.id = cb.cid)
LEFT JOIN
    contract_parameter_type_5 AS cpt5
ON (cpt5.cid = cb.cid)
LEFT JOIN
    contract_parameter_type_9 AS phone
ON (phone.cid = cb.cid)
WHERE
   cnt.date2 IS NULL
   AND
   cb.summa1 < 0
   AND
   cb.summa2 = 0
   AND
   cb.yy = YEAR(NOW())
   AND
   cb.mm = MONTH(NOW())
   AND
   cpt5.pid = 42

который собственно делает то что нужно

_________________
Интернет и телефония оптом со склада, или в розницу


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите с SQL запросом
СообщениеДобавлено: 29 авг 2011, 16:35 
Не в сети

Зарегистрирован: 20 апр 2011, 09:56
Сообщения: 346
Карма: 19
Код:
select s.val,c.title,c.comment,c.id,
   (b.summa1+b.summa2-b.summa3-b.summa4) balance,sum(REPLACE(data,'type&1%cost&','')) AS abon,
   (b.summa1+b.summa2-b.summa3-b.summa4-sum(REPLACE(data,'type&1%cost&',''))) diff,
   c.closesumma
from contract c
left join contract_balance b on c.id=b.cid
left join contract_parameter_type_1 s on c.id=s.cid and s.pid=4
LEFT JOIN contract_tariff AS t ON c.id=t.cid AND t.date2 IS NULL
LEFT JOIN tariff_plan AS p ON t.tpid=p.id
LEFT JOIN tariff_tree_link ON tariff_tree_link.tpid=p.id
LEFT JOIN module_tariff_tree ON module_tariff_tree.tree_id=tariff_tree_link.tree_id
LEFT JOIN mtree_node ON mtree_node.mtree_id=module_tariff_tree.id
where b.yy=YEAR(NOW()) and b.mm=MONTH(NOW()) AND mtree_node.type='month_cost' AND s.val<>"" AND c.status=0 AND c.gr IN (128) AND s.val<>0 AND (b.summa1+b.summa2-b.summa3-b.summa4) <=-400
group by c.id
having balance<c.closesumma


balance — Баланс
abon — абонентка которая спишется следующим месяцем
diff — остаток после следующего списания

Более гибкий и информативный )


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 32 ]  На страницу Пред.  1, 2

Часовой пояс: UTC + 5 часов [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
POWERED_BY
Русская поддержка phpBB
[ Time : 0.029s | 19 Queries | GZIP : On ]