forum.bitel.ru http://forum.bitel.ru/ |
|
Создание отчета из отчета http://forum.bitel.ru/viewtopic.php?f=12&t=3484 |
Страница 1 из 1 |
Автор: | skyb [ 26 янв 2010, 11:01 ] |
Заголовок сообщения: | Создание отчета из отчета |
А не кто не подскажет что использовать и что придумать можно чтоб получился из одного отчета другой. Тоесть по сформированным данным одного отчета получить уже другой |
Автор: | stark [ 26 янв 2010, 12:26 ] |
Заголовок сообщения: | Re: Создание отчета из отчета |
не совсем понятно что нужно получить и зачем |
Автор: | skyb [ 26 янв 2010, 12:44 ] |
Заголовок сообщения: | Re: Создание отчета из отчета |
stark писал(а): не совсем понятно что нужно получить и зачем Нужно на основе отчета №1 допустим они вывели какие-то данный, потом по этим данным и плюс ещё какието данные взятые из бд и в сумме получается отчет №2 |
Автор: | stark [ 26 янв 2010, 13:55 ] |
Заголовок сообщения: | Re: Создание отчета из отчета |
нет такой возможности ..нужно сделать отчет n2, который выводит все что нужно |
Автор: | skyb [ 26 янв 2010, 14:00 ] |
Заголовок сообщения: | Re: Создание отчета из отчета |
stark писал(а): нет такой возможности ..нужно сделать отчет n2, который выводит все что нужно ну а допустим если после генерации отчета записать это в базуданных, а потом из нее брать? или есть такая возможность-сделать запрос, потом те данные которые в запросе сложить со вторым запросом? например: запрос1+запрос2 и только потом сделать уже вывод? |
Автор: | stark [ 26 янв 2010, 15:22 ] |
Заголовок сообщения: | Re: Создание отчета из отчета |
а смысл ? проще сделать еще один |
Автор: | skyb [ 26 янв 2010, 15:25 ] |
Заголовок сообщения: | Re: Создание отчета из отчета |
stark писал(а): а смысл ? проще сделать еще один Просто тут дело в том что данные именно беруться из того что было сформировано в прошлом отчете. Мож что подругому подскажете. |
Автор: | leon [ 03 фев 2010, 21:12 ] |
Заголовок сообщения: | Re: Создание отчета из отчета |
skyb писал(а): stark писал(а): а смысл ? проще сделать еще один Просто тут дело в том что данные именно беруться из того что было сформировано в прошлом отчете. Мож что подругому подскажете. Это вложенные отчеты. Например, наработка по тарифам (основной модуль): Первый отчет - список тарифов с наработкой далее можно провалиться в детализацию по выбранному тарифу - список договоров с их наработкой. Из второго можно вернуться в первый. |
Автор: | skyb [ 04 фев 2010, 10:21 ] |
Заголовок сообщения: | Re: Создание отчета из отчета |
leon писал(а): skyb писал(а): stark писал(а): а смысл ? проще сделать еще один Просто тут дело в том что данные именно беруться из того что было сформировано в прошлом отчете. Мож что подругому подскажете. Это вложенные отчеты. Например, наработка по тарифам (основной модуль): Первый отчет - список тарифов с наработкой далее можно провалиться в детализацию по выбранному тарифу - список договоров с их наработкой. Из второго можно вернуться в первый. Точно! что то я забыл про это:-) мне нужно сделать следущее расчет коэффициэнта мультиплексирования - прикрепленный фаил. Так ща сделаю отчет по первой табличке, посмотрим где застопарюсь дальше. |
Автор: | Akhmat [ 04 фев 2010, 14:25 ] |
Заголовок сообщения: | Re: Создание отчета из отчета |
Интересный отчет. Если получится поделитесь наработкой. Могу поучаствовать, помогу чем смогу |
Автор: | skyb [ 04 фев 2010, 14:46 ] |
Заголовок сообщения: | Re: Создание отчета из отчета |
Akhmat писал(а): Интересный отчет. Если получится поделитесь наработкой. Могу поучаствовать, помогу чем смогу О хорошо! уже не один. Отчет действительно интересен и помоемому важен, для экономии канала. Постараюсь сегодня(завтра)сделать отчет по первой таблице. Просто сегодня день загружен был. И у меня уже 18.00 вобщем посмотрю и завтра напишу что получилось |
Автор: | skyb [ 05 фев 2010, 14:17 ] |
Заголовок сообщения: | Re: Создание отчета из отчета |
Чета вояю вояю а даже первого отчета не получается...буду дальше курить документацию. Не кто не пробовал? |
Автор: | Akhmat [ 05 фев 2010, 15:24 ] |
Заголовок сообщения: | Re: Создание отчета из отчета |
Код: SELECT DISTINCT ttl.tpid, (SELECT title FROM tariff_plan WHERE id=ttl.tpid) AS title, (SELECT SUM(amount)/1073741824.0 FROM session_detail_1_201001 WHERE sid=4 AND session_id IN ( SELECT id FROM log_session_1_201001 WHERE lid IN ( SELECT id FROM user_login_1 WHERE cid IN( SELECT cid FROM contract_tariff WHERE tpid=ttl.tpid AND (date1 IS NULL OR date1<='2010-01-15') AND (date2 IS NULL or date2 > '2009-10-01') ) ) ) ) AS trafik FROM tariff_tree_link ttl LEFT JOIN module_tariff_tree mtt ON ttl.tree_id=mtt.tree_id WHERE mtt.mid=1 HAVING NOT title IS NULL Запрос который выдает инфу по месеячному трафику по тарифным планам с диалап. НО в нем считается что если тарифный план действовал в выбранном месяце, то он действовал весь месяц, что может быть не совсем верно. mid=1 модуль диалап sid=4 услуга внешний вх. трафик никак не допру как переделать этот запрос, так чтобы в выборку сессий добавить ещё ограничение по действию тарифного плана, видать его перестроить надо. Запрос очень тяжелый, выполняется у меня порядка 15-20 минут. Написал перл скрипт, в котором запросы разделены, и который учитывает также и период действия тарифных планов, но он выполняется невероятно долго. |
Автор: | skyb [ 05 фев 2010, 15:37 ] |
Заголовок сообщения: | Re: Создание отчета из отчета |
На выходных покурю с джасперрепорт отчетами, мож запихаю его не запросом а в биллинг. Знакомится с отчетами только начал. Поэтому может неполучится. |
Автор: | skyb [ 09 фев 2010, 14:52 ] |
Заголовок сообщения: | Re: Создание отчета из отчета |
а что я делаю нетак? немного изменил запрос Код: SELECT DISTINCT ttl.tpid, (SELECT title FROM tariff_plan WHERE id=ttl.tpid) AS title, (SELECT SUM(amount)/1073741824.0 FROM session_detail_1_201001 WHERE sid=2 AND dtime=2010-01-01 AND session_id IN ( SELECT id FROM log_session_1_201001 WHERE lid IN ( SELECT id FROM user_login_1 WHERE cid IN( SELECT cid FROM contract_tariff WHERE tpid=ttl.tpid AND (date1 IS NULL OR date1<='2010-01-15') AND (date2 IS NULL or date2 > '2009-10-01') ) ) ) ) AS trafik FROM tariff_tree_link ttl LEFT JOIN module_tariff_tree mtt ON ttl.tree_id=mtt.tree_id WHERE mtt.mid=1 HAVING NOT title IS NULL Он не выдает цифр вообще если добавить чтоб по времени парсил типа dtime=2010-01-01 00:00:00 то он вообще ошибку выдает |
Автор: | Akhmat [ 09 фев 2010, 15:09 ] |
Заголовок сообщения: | Re: Создание отчета из отчета |
AND dtime=2010-01-01 в ковычки. лучше AND dtime BETWEEN '2010-01-01' AND '2010-01-02' тогда. Тут мне подсказал коллега с форума, что ещё лучше будет если убрать в запросе выборку из log_session т.е. в session_detail уже есть информация по договору, и можно переходить сразу к contract_tariff. upd Подправлю запрос с учетом этого немного позже. |
Автор: | skyb [ 09 фев 2010, 15:19 ] |
Заголовок сообщения: | Re: Создание отчета из отчета |
Akhmat писал(а): AND dtime=2010-01-01 в ковычки. лучше AND dtime BETWEEN '2010-01-01' AND '2010-01-02' тогда. Тут мне подсказал коллега с форума, что ещё лучше будет если убрать в запросе выборку из log_session т.е. в session_detail уже есть информация по договору, и можно переходить сразу к contract_tariff по поводу ковычек помогло и со временем работает. по поводу Akhmat писал(а): Тут мне подсказал коллега с форума, что ещё лучше будет если убрать в запросе выборку из log_session т.е. в session_detail уже есть информация по договору, и можно переходить сразу к contract_tariff я подумывал над этим, только когда его удаляешь он ошибку выдает. Просто боюсь ченить накосячить. Что делаю нетак? |
Автор: | skyb [ 09 фев 2010, 16:06 ] |
Заголовок сообщения: | Re: Создание отчета из отчета |
Код: SELECT DISTINCT ttl.tpid, (SELECT title FROM tariff_plan WHERE id=ttl.tpid) AS title, (SELECT SUM(amount)/28800 FROM session_detail_1_201001 WHERE sid=2 AND dtime BETWEEN '2010-01-01 15:00:00' AND '2010-01-01 16:00:00' AND session_id IN ( SELECT id FROM log_session_1_201001 WHERE lid IN ( SELECT id FROM user_login_1 WHERE cid IN( SELECT cid FROM contract_tariff WHERE tpid=ttl.tpid AND (date1 IS NULL OR date1<='2010-01-15') AND (date2 IS NULL or date2 > '2009-10-01') ) ) ) ) AS trafik FROM tariff_tree_link ttl LEFT JOIN module_tariff_tree mtt ON ttl.tree_id=mtt.tree_id WHERE mtt.mid=1 HAVING NOT title IS NULL собственно говоря таблица номер 2 только непонятно как зделать чтоб он показывал не за определенный час в определенный день а за определенный час в промежуток - за месяц |
Автор: | Akhmat [ 09 фев 2010, 23:44 ] |
Заголовок сообщения: | Re: Создание отчета из отчета |
Код: SELECT DISTINCT ttl.tpid, (SELECT title FROM tariff_plan WHERE id=ttl.tpid) AS title, (SELECT SUM(amount)/1073741824.0 FROM session_detail_1_201001 WHERE sid=4 AND cid IN ( SELECT cid FROM contract_tariff WHERE tpid=ttl.tpid AND (date1 IS NULL OR date1<='2010-01-15') AND (date2 IS NULL or date2 > '2009-10-01') ) ) AS trafik FROM tariff_tree_link ttl LEFT JOIN module_tariff_tree mtt ON ttl.tree_id=mtt.tree_id WHERE mtt.mid=1 HAVING NOT title IS NULL Так работает в два раза быстрее, а результат тот же (так зачем же платить больше). Но этот запрос не выбирает строго трафик по выбранному тарифу за месяц. Предполагается, что если у клиента тарифный план действовал в выбранном месяце, то он работал по нему весь месяц. В вашем случае одним запросом не реализовать думаю. Писать скрипт и делать выборку разве что. Можно на основе этого запроса. |
Автор: | skyb [ 10 фев 2010, 10:46 ] |
Заголовок сообщения: | Re: Создание отчета из отчета |
Расхождения получатся не сильно большие, и они будут вполне приемлемы для такого отчета.щас мучаюсь над третим отчетом |
Автор: | skyb [ 10 фев 2010, 13:31 ] |
Заголовок сообщения: | Re: Создание отчета из отчета |
в попытках добить третью таблицу дошел до такого вот запроса Код: SELECT DISTINCT (select COUNT(id) from contract) AS contract, (SELECT title FROM tariff_plan WHERE id=ttl.tpid) AS title, (SELECT SUM(amount)/1073741824.0 FROM session_detail_1_201001 WHERE sid=2 AND cid IN ( SELECT cid FROM contract_tariff WHERE tpid=ttl.tpid AND (date1 IS NULL OR date1<='2010-01-15') AND (date2 IS NULL or date2 > '2009-10-01') ) ) AS trafik FROM tariff_tree_link ttl LEFT JOIN module_tariff_tree mtt ON ttl.tree_id=mtt.tree_id WHERE mtt.mid=1 HAVING NOT title IS NULL как преобразовать запрос чтобы вместо полного подсчета количество договоров он считал нужные для нужных тарифных планов допустим для такогото 20 договоров, для токого то 40 |
Автор: | skyb [ 15 фев 2010, 13:45 ] |
Заголовок сообщения: | Re: Создание отчета из отчета |
неподскажете почему при таком запросе записи дублируются? Код: select DISTINCT tariff_plan.title, (select DISTINCT count(tpid) from contract_tariff where contract_tariff.tpid=tariff_plan.id)as contact, (select sum(amount) from session_detail_1_201002 where contract_tariff.cid=session_detail_1_201002.cid and sid=2)as trafic from session_detail_1_201002, contract_tariff, tariff_plan where contract_tariff.cid=session_detail_1_201002.cid and contract_tariff.tpid=tariff_plan.id; такое ощущение что он просто выводит трафик за какждую сессию. как убрать дубляцию? |
Автор: | Akhmat [ 15 фев 2010, 16:00 ] |
Заголовок сообщения: | Re: Создание отчета из отчета |
Не понятный запрос. подзапрос Код: (select DISTINCT count(tpid) from contract_tariff where contract_tariff.tpid=tariff_plan.id)as contact всегда будет давать один и тот же результат, потому что он не связан условиями с основым запросом. выборка два раза из session_detail_1_201002 тоже не понятна |
Автор: | skyb [ 19 фев 2010, 10:57 ] |
Заголовок сообщения: | Re: Создание отчета из отчета |
Не могу разобраться с Ireports. Не может ли ктонибудь рассказать как это запихивается в отчеты. напримере одного из этих отчетов |
Автор: | skyb [ 27 фев 2010, 15:24 ] |
Заголовок сообщения: | Re: Создание отчета из отчета |
третья таблица, файлы надо положить в папку с сервером /reports находится они будут в модуле подключения по dialup Мож всетаки ктонибудь поможет? хотябы с mysql запросами. Да только забыл добать в sql запросе чтоб выводил в мб сейчас он выводит в байтах(не выводит, а пользователи скачавшие больше xx мб - там байт) |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |