Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Как получить последнюю цену по каждой позиции?
SELECT name, MAX(cena)AS cena FROMTABLEGROUPBY name
Спасибо добрые люди что откликнулись.
Но цену надо брать которая введена последняя (по полю - date - ).
Как написать универсально, если будут появляться ещё - name - (например yellow, blue и т.д.) т.е. не переписывая запрос чтобы он работал?
Таблица имеет вид:
id | name | date | cena
1 | red | 1469735179 | 500
2 | green | 1469735223 | 600
3 | red | 1469735438 | 5
4 | green | 1469735456 | 22
Проверил как работает этот запрос:
SELECT name, cena, MAX(date) AS date FROM tab GROUP BY name
выдаёт:
name cena date
green 600 1469735456
red 500 1469735438
Что не правильно, т.к. date не соответствуют ценам.
SELECT name, cena, MAX(date) AS date FROM `tab` WHERE name = 'red' OR name = 'green' GROUP BY name LIMIT 2 - выдаёт тоже самое.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.