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




MySQL.RU - Webboard



Вернуться
Проблема с запросом (omickron) 07/08/2010 - 17:08:52
      Re: Дополнение (omickron) 07/08/2010 - 18:10:49
      Re: Вариант решения, который нужно доработать (omickron) 07/08/2010 - 18:18:49

> Original message text:
> From: omickron - 07/08/2010 - 17:08:52
> Subject:Проблема с запросом
> -----------------
> Есть две таблицы: tbSales(ID, ...), tbRes (ID, idSale, dDateTime, ...)
> Это организация резервов к продажам.
> Связь - один ко многим (tbRes.idSale=tbSales.ID)
> Для резервов есть дата и время.
>
> Задача - получить все записи из таблицы tbSales в таком виде:
> tbSales.ID, <tbRes.ID - с минимальным dDateTime>
>
> SELECT ss.ID, rs.ID
> FROM tbSales ss
> LEFT JOIN tbRes rs ON ss.ID=rs.idSale
> GROUP BY ss.ID
>
> Этот запрос выдаёт случайный rs.ID для каждого ss.ID. А мне нужно, чтоб выдавал ID записи с минимальной датой dDateTime.
>
> Просто туплю - не могу понять, как это получить?
>
> Помогите, пожалуйста.
>


From: omickron - 07/08/2010 - 18:18:49
Subject:Вариант решения, который нужно доработать
-----------------
Вот вариант, который я сообразил:

SELECT ss.ID AS idSale,
srs.ID AS idRes,
srs.dDateTime
FROM tbSales ss
LEFT JOIN tbSaleRess srs ON ss.ID=srs.idSale
AND srs.dDateTime=(SELECT MIN(s1.dDateTime) FROM tbSaleRess s1 WHERE s1.idSale=ss.ID)


Проблема в том, что результаты мне необходимо сгруппировать по ss.ID. Приведённый пример упрощён. В реальности в нём ещё присутствует SUM() по ещё одной таблице. А для использования SUM() нужна группировка GROUP BY ss.ID.
Так вот, если в конец этого запроса приписать GROUP BY ss.ID, то в полях idRes и dDateTime будут всегда NULL.
Почему - я не могу понять.
Почему?


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

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

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



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