Несколько полезных SQL запросов

Технические вопросы по UTM 5.0
Закрыто
Аватара пользователя
Нафаня
Сообщения: 130
Зарегистрирован: Пн июн 09, 2008 11:12

Сообщение Нафаня »

Кто нибудь реализовывал для себя выборку из базы?

день мес. Фалмилия потреблено(клтраф1) потреблено(клтраф2)

Аватара пользователя
Нафаня
Сообщения: 130
Зарегистрирован: Пн июн 09, 2008 11:12

Сообщение Нафаня »

дошел до такого
select full_name,from_unixtime(discount_date,'%Y-%m-%d') as data,sum(bytes) from UTM5.discount_transactions_iptraffic_all,UTM5.users where discount_transactions_iptraffic_all.account_id=users.id and users.id='161' and t_class='10' group by users.id,from_unixtime(discount_date,'%Y-%m-%d');
+------------------------------------------------+------------+------------+
| full_name | data | sum(bytes) |
+------------------------------------------------+------------+------------+
| xxxxxxxxxxxxxxxxxxx | 2009-02-01 | 2828047 |
| xxxxxxxxxxxxxxxxxxx | 2009-02-02 | 13852551 |
| xxxxxxxxxxxxxxxxxxx | 2009-02-03 | 26005194 |
| xxxxxxxxxxxxxxxxxxx | 2009-02-04 | 993679 |
+------------------------------------------------+------------+------------+
'это по классу трафика 10. подскаите как по одновременно еще дописать запрос для класса 200.
т.е. еще колонку вывести класс 200

banec
Сообщения: 269
Зарегистрирован: Вт сен 11, 2007 09:06

Сообщение banec »

Подскажите основной отчет SQL! :?: :?:
Заранее СПАСИБО!!

plaguekriz
Сообщения: 64
Зарегистрирован: Пн июн 15, 2009 15:28

Сообщение plaguekriz »

Подскажите, как через SQL или URFA вытащить full_name клиента из базы в читабельном виде? Никак не могу подобрать кодировку.

darang
Сообщения: 161
Зарегистрирован: Пт янв 15, 2010 15:39
Контактная информация:

Сообщение darang »

plaguekriz писал(а):Подскажите, как через SQL или URFA вытащить full_name клиента из базы в читабельном виде? Никак не могу подобрать кодировку.
mysql_query ( "SET NAMES 'latin1'" );

latin1 - в зависимости от кодировки базы

Falcon
Сообщения: 7
Зарегистрирован: Чт ноя 26, 2009 02:47

Сообщение Falcon »

помогите с запросом для получение информации в каких связках еще задействован класс трафика 10
аська 331 726 544
мыло info(dog)wifi.vn.ua

Makariy
Сообщения: 227
Зарегистрирован: Ср авг 27, 2008 14:08

Сообщение Makariy »

на форуме криса был запрос: кто запускал впн с левого айпи, никто не припомнит?

rimidal
Сообщения: 53
Зарегистрирован: Пт янв 29, 2010 22:36

Сообщение rimidal »

SQL для основного отчета:

Код: Выделить всё

SELECT `users`.`id`, `users`.`login`, `users`.`full_name`, `users`.`home_telephone`,
       `main_rep`.`account_id`,     `main_rep`.`incoming_rest`,   `main_rep`.`once_service`,    `main_rep`.`period_service`,
       `main_rep`.`iptraf_service`, `main_rep`.`hotspot_service`, `main_rep`.`dialup_service`,  `main_rep`.`iptel_service`,
       `main_rep`.`nds`,            `main_rep`.`sum_with_nds`,    `main_rep`.`payment`,         `main_rep`.`outgoing_rest`
	
FROM   `users`,`users_accounts`,
       (SELECT `nach`.`account_id`, 
	       `in_rest`.`incoming_rest` as `incoming_rest`,       
	       SUM(CASE `nach`.`service_type` WHEN 1 THEN `nach`.`discount` ELSE 0 END) as `once_service`,
	       SUM(CASE `nach`.`service_type` WHEN 2 THEN `nach`.`discount` ELSE 0 END) as `period_service`,
	       SUM(CASE `nach`.`service_type` WHEN 3 THEN `nach`.`discount` ELSE 0 END) as `iptraf_service`,
	       SUM(CASE `nach`.`service_type` WHEN 4 THEN `nach`.`discount` ELSE 0 END) as `hotspot_service`,
	       SUM(CASE `nach`.`service_type` WHEN 5 THEN `nach`.`discount` ELSE 0 END) as `dialup_service`,
	       SUM(CASE `nach`.`service_type` WHEN 6 THEN `nach`.`discount` ELSE 0 END) as `iptel_service`,
	       (SUM(`nach`.`discount_with_tax`) - SUM(`nach`.`discount`)) as `nds`,
	       SUM(CASE `nach`.`service_type` WHEN 0 THEN 0 ELSE `nach`.`discount_with_tax` END) as `sum_with_nds`,
	       SUM(CASE `nach`.`service_type` WHEN 0 THEN `nach`.`discount` ELSE 0 END)*(-1) as `payment`,
	       `out_rest`.`outgoing_rest` as `outgoing_rest`

	FROM  ( SELECT SUM(`discount`) as `discount`,SUM(`discount_with_tax`) as `discount_with_tax`,`service_type`,`account_id`
		FROM `discount_transactions_all`
		WHERE &#40;UNIX_TIMESTAMP&#40;'<ДАТА С>'&#41; <= `discount_date`&#41;AND&#40;`discount_date` < UNIX_TIMESTAMP&#40;'<ДАТА ПО>'&#41;&#41;
		GROUP BY `service_type`, `account_id` &#41; `nach`,
	      &#40; SELECT `temp`.`account_id`,`incoming_rest`
		FROM   `discount_transactions_all`,
		       &#40; SELECT `account_id`,MIN&#40;id&#41; as `id_in_rest`
		         FROM `discount_transactions_all` 
		         WHERE &#40;UNIX_TIMESTAMP&#40;'<ДАТА С>'&#41; <= `discount_date`&#41;AND&#40;`discount_date` < UNIX_TIMESTAMP&#40;'<ДАТА ПО>'&#41;&#41;
		         GROUP BY `account_id` &#41; `temp`
		WHERE `id` = `id_in_rest` &#41; `in_rest`,
	      &#40; SELECT `temp`.`account_id`,`outgoing_rest`
		FROM   `discount_transactions_all`,
		       &#40; SELECT `account_id`,MAX&#40;id&#41; as `id_out_rest`
		         FROM `discount_transactions_all` 
		         WHERE &#40;UNIX_TIMESTAMP&#40;'<ДАТА С>'&#41; <= `discount_date`&#41;AND&#40;`discount_date` < UNIX_TIMESTAMP&#40;'<ДАТА ПО>'&#41;&#41;
		         GROUP BY `account_id` &#41; `temp`
		WHERE `id` = `id_out_rest`&#41; `out_rest`
	WHERE &#40;`nach`.`account_id` = `in_rest`.`account_id`&#41; AND &#40;`nach`.`account_id` = `out_rest`.`account_id`&#41;
	GROUP BY `nach`.`account_id`
	ORDER BY `nach`.`account_id`&#41; `main_rep`

WHERE &#40;`users`.`id` = `users_accounts`.`uid`&#41; and &#40;`users_accounts`.`account_id` = `main_rep`.`account_id`&#41;
Пимечание: не забудьте поменять даты

eugeneA
Сообщения: 2
Зарегистрирован: Чт авг 19, 2010 13:11

Сообщение eugeneA »

А не подскажете запрос - пользователи которые раньше платили, а теперь почему-то нет?

dk
Сообщения: 424
Зарегистрирован: Чт авг 10, 2006 08:52

Сообщение dk »

eugeneA писал(а):А не подскажете запрос - пользователи которые раньше платили, а теперь почему-то нет?

Код: Выделить всё

SELECT account_id
FROM payment_transactions 
GROUP BY account_id 
HAVING MAX&#40;payment_enter_date&#41;<unix_timestamp&#40;'2010-01-01'&#41;;

Puzan_aga
Сообщения: 105
Зарегистрирован: Чт сен 11, 2008 10:43

Сообщение Puzan_aga »

dk писал(а):
eugeneA писал(а):А не подскажете запрос - пользователи которые раньше платили, а теперь почему-то нет?

Код: Выделить всё

SELECT account_id
FROM payment_transactions 
GROUP BY account_id 
HAVING MAX&#40;payment_enter_date&#41;<unix_timestamp&#40;'2010-01-01'&#41;;
А как можно сделать чтобы выводилось еще поле полное имя?

Makariy
Сообщения: 227
Зарегистрирован: Ср авг 27, 2008 14:08

Сообщение Makariy »

Puzan_aga писал(а): А как можно сделать чтобы выводилось еще поле полное имя?

Код: Выделить всё

SELECT payment_transactions.account_id AS id, users.full_name, accounts.balance, from_unixtime&#40; max&#40; payment_enter_date &#41; &#41; AS date FROM payment_transactions, users, accounts, users_accounts WHERE &#40;accounts.id = payment_transactions.account_id&#41; AND &#40;users.id = uid&#41; AND &#40;accounts.id = users_accounts.account_id&#41; AND &#40;accounts.is_deleted =0&#41; AND &#40;accounts.balance >0&#41; GROUP BY payment_transactions.account_id HAVING max&#40; payment_enter_date &#41; < unix_timestamp&#40; date_sub&#40; curdate&#40; &#41; , INTERVAL 6 MONTH &#41;&#41;;

eugeneA
Сообщения: 2
Зарегистрирован: Чт авг 19, 2010 13:11

Сообщение eugeneA »

Этот запрос - показывает кто заплатил например за 3 месяца, и дальше не платит - но пользуется - т.е. в целом хороший пользователь.

Нужно выявлять "плохих" - те которые не платят и у которых списаний нет...

mikkey finn
Сообщения: 1612
Зарегистрирован: Пт ноя 10, 2006 15:23

Сообщение mikkey finn »

этот запрос никак не касается списаний. Он только выбирает тех, у кого с даты последнего платежа прошло 6 месяцев. Для списаний надо еще анализировать табличку discount_transactions_all. Здесь этого нет.

Lamobot
Сообщения: 12
Зарегистрирован: Пн мар 31, 2008 13:26
Контактная информация:

Сообщение Lamobot »

А не подскажите запрос, который бы выводил лицевые счета пользователей и сумму списаных денег за месяц если не было расхода трафика

Закрыто