#php #sql
Вопрос:
Я пытаюсь взять сумму из таблицы, когда цены разные, но получаю только одну сумму цены. таблица базы данных
$db = ("SELECT distinct price FROM `tests` order by price desc ");
$resultprice = $conn->query($db);
while ($rowprice = mysqli_fetch_array($resultprice ))
{
$rowprice=$rowprice['price'];
$db = ("SELECT sum(amount) FROM `tests` where price='$rowprice'");
$resultamount = $conn->query($db);
while ($rowamount = mysqli_fetch_array($resultamount ))
{
$pamount=$rowamount[0];
echo $rowprice; echo "<br>";
$sumprice=($rowprice-"70")*$pamount;
}
echo $sumprice;
}
Комментарии:
1. Если у вас возникли проблемы с результатом, попробуйте разделить проблему на части. Сначала задайте вопрос SQL, имея достаточно данных, чтобы показать эту проблему SQL.
2. в базе данных у меня есть несколько товаров с разными ценами, которые я продал. мне нужно получить информацию о том, сколько денег я заработал после того, как продал товар.
3. Ваш вопрос не содержит подробностей о продуктах. Пожалуйста, добавьте эту деталь (к вопросу), если ваш вопрос касается продуктов. Попробуйте прояснить весь вопрос и, если возможно, ограничьте проблему SQL, если ваша текущая проблема связана с SQL. Текущий ответ уже должен касаться существующего вопроса. Ты пробовал это сделать? Создайте полный (но минимальный) тестовый случай, в котором будут показаны ваши таблицы, данные теста, ваш фактический результат и (цель) ожидаемый результат.
Ответ №1:
На самом деле нам не нужно зацикливаться на программе, чтобы сделать это. Используйте GROUP BY
вместо этого.
SELECT price
, sum(amount)
FROM `tests`
GROUP BY price
ORDER BY price
;
Если tests
таблица содержит подробную информацию о проданном продукте, мы можем рассчитать общую сумму каждого проданного продукта, например:
SELECT product
, sum(amount) AS total
FROM tests
GROUP BY product
ORDER BY sum(amount)
;