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




MySQL.RU - Webboard



Вернуться
Группировка по двум полям с сортировкой (Tachyon) 03/04/2013 - 12:31:41
      Re: Группировка по двум полям с сортировкой (Akina) 03/04/2013 - 13:28:00
      Re: Группировка по двум полям с сортировкой (Tachyon) 03/04/2013 - 13:52:29
      Re: Группировка по двум полям с сортировкой (Akina) 03/04/2013 - 16:31:25
      Re: Группировка по двум полям с сортировкой (Tachyon) 03/04/2013 - 18:25:07
      Re: Группировка по двум полям с сортировкой (Akina) 03/04/2013 - 20:43:18

> Original message text:
> From: Tachyon - 03/04/2013 - 12:31:41
> Subject:Группировка по двум полям с сортировкой
> -----------------
> Здравствуйте. Необходимо решить следующую задачу:
> "SELECT enterdate, program, period, field1...field4 FROM table WHERE enterdate <= '2013-04-03' GROUP BY program, period"
> В базе может быть несколько значений с совпадающими program-period, отличающиеся по enterdate. Такой запрос работает верно, выдает по одному значению на каждую пару program-period, но необходимо сделать так, чтобы из множества таких пар выбирала ту, где максимальная enterdate.
> Заранее спасибо.
>


From: Akina - 03/04/2013 - 13:28:00
Subject:Группировка по двум полям с сортировкой
-----------------
> Такой запрос работает верно

Результат выглядит как верный - но на самом деле запрос работает неверно, и в один прекрасный день выдаст совершенно идиотский, хоть и формально верный, результат.
Читайте маны по ограничениям авторасширения группировки.

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

SELECT t1.*
FROM table t1,
(
SELECT MAX(t3.enterdate) enterdate, t3.program, t3.period
FROM table t3
HAVING MAX(t3.enterdate) <= '2013-04-03'
GROUP BY t3.program, t3.period
) t2
WHERE t1.enterdate = t2.enterdate
AND t1.program = t2.program
AND t1.period = t2.period;




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

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

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



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