У меня есть таблица, которая выглядит примерно так:
имя имя кол-во цена
1 книга1 2 $ 10 0
2 book2 1 $ 5 0
3 book1 3 $ 15 1
4 book3 2 $ 10 0
5 book4 3 $ 15 0
6 book2 3 $ 15 1
7 book2 4 $ 20 2
и данные, которые будут отображаться в Интернете,
Без названия Кол-во Цена
1 книга1 3 $ 15 1
2 book2 4 $ 20 2
3 book3 2 $ 10 0
4 book4 3 $ 15 0
Это запрос, который я использую
<?php
$sql = mysql_query("SELECT SUM(qty*price) FROM data_ph_user ORDER BY id");
while($res = mysql_fetch_array($sql)){
?>
<!-- display result -->
<?php
$resf1 = $res['SUM(qty*price)']; if($resf1 == 0){ echo '0'; }else{ echo $resf1; }
?>
<!-- end display -->
<?php } ?>
итак, как теперь получить данные?
Я сделал различные виды запросов, используя «ГДЕ», но не получил результатов
Я понял вашу точку зрения … так что вы просто хотите выбрать строку, где кол-во является максимальным для названия книги … правильно ??
попробуйте запрос ниже
select
name, qty, price, rev
from
MyTestingTable
where
qty = (select max(qty) from MyTestingTable i where i.Name = MyTestingTable.Name)
order by MyTestingTable.name
Вы можете посмотреть на данный SQL скрипка а также .. это даст вам желаемый результат ..
Причина в том, что SUM
является агрегатная функция. Такие функции обычно возвращают одну строку: в этом случае вы бы суммировали по всей таблице если Вы группируете по чему-то.
Если я правильно понимаю ваш вопрос, вы хотите перечислить наивысшую версию всех элементов?
SELECT *, MAX(rev) FROM data_ph_user GROUP BY `name`
Тогда это только вопрос набрав его правильно.