Запросы к БД касательно пользователей.

Технические вопросы по UTM 5.0
Ответить
Andriuxa
Сообщения: 114
Зарегистрирован: Пн окт 13, 2008 07:08

Запросы к БД касательно пользователей.

Сообщение Andriuxa »

Приветствую всех.
У меня только пара вопросов:
1. Подскажите, как сделать запрос на выборку из БД людей, у которых баланс лицевого счета меньше 0.000 рублей?
2. Как создать запрос на выборку абонентов, которые не вносили не разу платежи за последние 3 месяца.

Искал в поиске не нашел. На написание самодельных запросов потратил 3 дня без результата. помогите с запросом.
Заранее благодарен за ответ.

Аватара пользователя
Chrst
Сообщения: 370
Зарегистрирован: Пт май 11, 2007 09:28
Откуда: Медиахолдинг "ЛеККС"
Контактная информация:

Re: Запросы к БД касательно пользователей.

Сообщение Chrst »

Andriuxa писал(а):Приветствую всех.
У меня только пара вопросов:
1. Подскажите, как сделать запрос на выборку из БД людей, у которых баланс лицевого счета меньше 0.000 рублей?
2. Как создать запрос на выборку абонентов, которые не вносили не разу платежи за последние 3 месяца.

Искал в поиске не нашел. На написание самодельных запросов потратил 3 дня без результата. помогите с запросом.
Заранее благодарен за ответ.
По первому вопросу как-то так

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

SELECT u.id, u.login, u.full_name, a.balance FROM users as u, accounts as a
  WHERE a.id=u.basic_account AND a.balance<'0' AND u.is_deleted='0';
По второму вопросу как-то так
http://www.chris.ru/forum/index.php?showtopic=647

Andriuxa
Сообщения: 114
Зарегистрирован: Пн окт 13, 2008 07:08

Сообщение Andriuxa »

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

SELECT u.id, u.login, u.full_name, a.balance FROM users as u, accounts as a 
  WHERE a.id=u.basic_account AND a.balance<'0' AND u.is_deleted='0';
Спасибо. помогло.
Немного правда отредактировал до вида:

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

select u.id,u.login,u.actual_address,u.flat_number,a.balance from users as u, accounts as a where a.id=u.basic_account and a.is_blocked>'0' and u.is_deleted='0';
Теперь выводятся id, логин, адрес, квартира и баланс, при условии что абонент заблокирован и не удален.

А не подскажите, как сделать выборку абонента по установленному ему тарифному плану?
Заранее спасибо.

Аватара пользователя
Chrst
Сообщения: 370
Зарегистрирован: Пт май 11, 2007 09:28
Откуда: Медиахолдинг "ЛеККС"
Контактная информация:

Сообщение Chrst »

Andriuxa писал(а):А не подскажите, как сделать выборку абонента по установленному ему тарифному плану?
Заранее спасибо.
Не совсем понятен запрос, но как-то так делается выборка абонентов с тарифным планом id 45

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

SELECT u.id, u.login, u.full_name FROM account_tariff_link as atl, users as u, accounts as a
WHERE
   atl.account_id=u.id AND
   a.id=u.basic_account AND
   atl.tariff_id=45 AND
   atl.is_deleted=0

Andriuxa
Сообщения: 114
Зарегистрирован: Пн окт 13, 2008 07:08

Сообщение Andriuxa »

Не совсем понятен запрос
Просто надо вывести логин, адрес, квартиру, баланс, текущий и следующий тарифные планы.

Andriuxa
Сообщения: 114
Зарегистрирован: Пн окт 13, 2008 07:08

Сообщение Andriuxa »

ну вот. :( так никто и не ответил.

Аватара пользователя
Chrst
Сообщения: 370
Зарегистрирован: Пт май 11, 2007 09:28
Откуда: Медиахолдинг "ЛеККС"
Контактная информация:

Сообщение Chrst »

Andriuxa писал(а):ну вот. :( так никто и не ответил.
Нда :( За это время можно было и самому ответить.
Выводит логин и id текущего и следующего тарифов

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

SELECT u.id, u.login, u.full_name, atl.tariff_id, atl.next_tariff_id FROM account_tariff_link atl, users u, accounts a
WHERE
   u.id=7 AND
   a.id=u.basic_account AND
   atl.account_id=u.id AND
Выводит логин и текущий тариф

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

SELECT u.id, u.login, u.full_name, t.name FROM account_tariff_link atl, users u, accounts a, tariffs t
WHERE
   u.id=7 AND
   a.id=u.basic_account AND
   atl.account_id=u.id AND
   t.id=atl.tariff_id
Выводит логин и следующий тариф

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

SELECT u.id, u.login, u.full_name, t.name FROM account_tariff_link atl, users u, accounts a, tariffs t
WHERE
   u.id=7 AND
   a.id=u.basic_account AND
   atl.account_id=u.id AND
   t.id=atl.next_tariff_id

Andriuxa
Сообщения: 114
Зарегистрирован: Пн окт 13, 2008 07:08

Сообщение Andriuxa »

а выводить можно только по определенному id или всех сразу тоже можно вывести?
Заранее благодарен.

Аватара пользователя
Chrst
Сообщения: 370
Зарегистрирован: Пт май 11, 2007 09:28
Откуда: Медиахолдинг "ЛеККС"
Контактная информация:

Сообщение Chrst »

Andriuxa писал(а):а выводить можно только по определенному id или всех сразу тоже можно вывести?
Заранее благодарен.
Ну что за народ пошел, совсем без фантазии ;)

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

SELECT u.id, u.login, u.full_name, t.name FROM account_tariff_link atl, users u, accounts a, tariffs t
WHERE
   a.id=u.basic_account AND
   atl.account_id=u.id AND
   t.id=atl.next_tariff_id 

Andriuxa
Сообщения: 114
Зарегистрирован: Пн окт 13, 2008 07:08

Сообщение Andriuxa »

Вот спасибо огромное. приму на вооружение. :) :beer:

gil
Сообщения: 355
Зарегистрирован: Вт ноя 11, 2008 14:28

Сообщение gil »

Chrst писал(а):
Andriuxa писал(а):а выводить можно только по определенному id или всех сразу тоже можно вывести?
Заранее благодарен.
Ну что за народ пошел, совсем без фантазии ;)

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

SELECT u.id, u.login, u.full_name, t.name FROM account_tariff_link atl, users u, accounts a, tariffs t
WHERE
   a.id=u.basic_account AND
   atl.account_id=u.id AND
   t.id=atl.next_tariff_id 
можно еще добавить u.is_deleted=0 AND a.is_deleted=0 AND t.is_deleted=0.. типа того :)

Аватара пользователя
Chrst
Сообщения: 370
Зарегистрирован: Пт май 11, 2007 09:28
Откуда: Медиахолдинг "ЛеККС"
Контактная информация:

Сообщение Chrst »

gil писал(а):можно еще добавить u.is_deleted=0 AND a.is_deleted=0 AND t.is_deleted=0.. типа того :)
Соль и перец сыпем по вкусу, я дал всего-лишь рецепт :)

Andriuxa
Сообщения: 114
Зарегистрирован: Пн окт 13, 2008 07:08

Сообщение Andriuxa »

Ну да, не спорю. это я уже сделал.
теперь буду адаптировать запрос под php. :)
Спасибо за помощь.

Ответить