Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Помогите с запросом (Andrew) 24/05/2006 - 15:16:23
      Re: Помогите с запросом (Dinky) 24/05/2006 - 23:15:50
      Re: Помогите с запросом (Andrew) 24/05/2006 - 23:43:13
      Re: Помогите с запросом (Dinky) 25/05/2006 - 00:00:24
      Re: Помогите с запросом (Andrew) 25/05/2006 - 12:41:49
      Re: Помогите с запросом (Dinky) 25/05/2006 - 19:05:26

> Original message text:
> From: Andrew - 24/05/2006 - 15:16:23
> Subject:Помогите с запросом
> -----------------
> Есть две таблицы
> CREATE TABLE `Monthly` (
> `id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
> `clientID` INT UNSIGNED NULL,
> `totalsum` INT NULL,
> `dateIn` DATETIME NULL,
> PRIMARY KEY (`id`)
> )
> и
> CREATE TABLE `Daily` (
> `id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
> `clientID` INT UNSIGNED NULL,
> `totalsum` INT NULL,
> `dateIn` DATETIME NULL,
> PRIMARY KEY (`id`)
> )
>
> необходимо получить все суммы поклиентно из таблицы Monthly и все суммы поклиетно из таблицы Daily, НО и з таблицы Daily надо получать только те, у которых значение dateIn больше определенной даты, а именно больше последней даты из таблицы Monthly соответствующего клиента.
> Еще два условия: в таблице Monthly всегда есть минимум одна запись для клиента, в таблице Daily может не оказатся записей старше последней соответствующей клиенту записи из таблицы Monthly .
> Т.е. раз в месяц данные по клиенту суммируются и сваливаются в таблицу Monthly, а данные что были записаны 6 месяцев назад из таблицы Daily удаляются.
> И все это хочется получить одним запросом.
>
> Или подскажите другой способ агрегации большого количества платежей.
> Заранее благодарен.
>


From: Dinky - 25/05/2006 - 19:05:26
Subject:Помогите с запросом
-----------------
"Удаляю для того что бы увеличить скорость выполнения SELECT'а, он ведь каждый раз будет по всей таблице, а у агрегированных ессно флаг добавлять надо, что бы с детализированными вместе не удалить или повторно не посчитать =)"
1) нет, если индекс есть и запрос его использует - не будет по всей таблице, подгрузит в key_buffer нужный кусок индекса, посмотрит по нему и вычитает нужный кусок данных ;)
2) флаг я предлагал в Daily добавить, тогда можно сразу UNION по всем клиентам...

В любом случае, если есть возможность ролапить данные из Daily в Monthly с одновременным переносом/удалением записей - то лучше так и сделать
--
Dmitry


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
28224



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |