Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Запрос с функцией MIN()

Сообщения:  [1-10]   [11-11] 

 
 автор: Sfinks   (05.04.2013 в 18:08)   письмо автору
 
   для: hk416   (05.04.2013 в 14:58)
 

Дак вы на время посмотрите.... моего ответа и вашего.
Так что никто не парится =)

  Ответить  
 
 автор: hk416   (05.04.2013 в 14:58)   письмо автору
 
   для: Sfinks   (05.04.2013 в 12:35)
 

Да ребята у меня уже все давно работает, чо вы паритесь, я же вон ранее написал, про Минимум я же сказал он в WHERE никогда работать не будет!!!!!

  Ответить  
 
 автор: Valick   (05.04.2013 в 12:46)   письмо автору
 
   для: hk416   (05.04.2013 в 12:35)
 

SELECT `OS` , `Name` , `PriceDown`
FROM `szi_nsd`
HAVING `OS` =12
AND `ID_AS` <=4
AND `PriceDown` = MIN( `PriceDown` )


а еще лучше как-то так
SELECT m.`OS` , m.`Name` , m.`PriceDown`
(SELECT `OS` , `Name` , `PriceDown`
FROM `szi_nsd`
WHERE `OS` =12
AND `ID_AS` <=4) m
HAVING m.`PriceDown` = MIN( m.`PriceDown` )

  Ответить  
 
 автор: Valick   (05.04.2013 в 12:44)   письмо автору
 
   для: Sfinks   (05.04.2013 в 12:38)
 

на обед убегал :)

  Ответить  
 
 автор: Sfinks   (05.04.2013 в 12:38)   письмо автору
 
   для: Valick   (05.04.2013 в 12:32)
 

Почему 15 сек? У вас шахматные часы взведены? Уже флажок падает? =)

  Ответить  
 
 автор: Sfinks   (05.04.2013 в 12:35)   письмо автору
 
   для: hk416   (05.04.2013 в 11:34)
 

По идее должно бы было работать вот так:
SELECT `OS` , `Name` , `PriceDown` 
FROM `szi_nsd` 
WHERE `OS` =12 
  AND `ID_AS` <=4 
HAVING `PriceDown` = MIN( `PriceDown` )

Но почему-то выдает 0 строк результата=(
Может я переработал конечно.... Проверьте, вдруг заработает =)

Зато работает так:
SELECT `OS` , `Name` , `PriceDown` 
FROM `szi_nsd` 
WHERE `OS` =12 
AND `ID_AS` <=4 
AND `PriceDown` = ( SELECT min( `PriceDown` )
                    FROM `szi_nsd` 
                    WHERE `OS` =12 
                    AND `ID_AS` <=4 
                  )

  Ответить  
 
 автор: hk416   (05.04.2013 в 12:35)   письмо автору
 
   для: Valick   (05.04.2013 в 11:40)
 

Огромное спасибо, сделал, получилось. Только одно НО!!! 2-й код заработал и сделал то что нужно, но 1-й не заработал и работать не будет в принципе. Во первых сразу выдал ошибку "#1111 - Invalid use of group function" во вторых я так знал что и MIN и MAX запрещено применять в конструкции WHERE, вот он и выдал ошибку.
Но все равно спасибо за помощь, задание выполнил!!!

  Ответить  
 
 автор: Valick   (05.04.2013 в 12:32)   письмо автору
 
   для: Sfinks   (05.04.2013 в 12:20)
 

все может быть, на ответ было 15 сек, можно having пробнуть

  Ответить  
 
 автор: Sfinks   (05.04.2013 в 12:20)   письмо автору
 
   для: Valick   (05.04.2013 в 11:40)
 

А первый выдает ошибку =)

  Ответить  
 
 автор: Valick   (05.04.2013 в 11:40)   письмо автору
 
   для: hk416   (05.04.2013 в 11:34)
 

SELECT `OS` , `Name` , `PriceDown`
FROM `szi_nsd`
WHERE `OS` =12
AND `ID_AS` <=4
AND `PriceDown` = MIN( `PriceDown` )


SELECT `OS` , `Name` , `PriceDown`
FROM `szi_nsd`
WHERE `OS` =12
AND `ID_AS` <=4
ORDER BY `PriceDown` DESC
LIMIT 1

но последний запрос не учитывает несколько одинаковых минимальных цен

  Ответить  

Сообщения:  [1-10]   [11-11] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования