Достичь этого только с MySQL

0
$query = "SELECT stake, cuota, ID FROM tips WHERE ID = 1";

Моя таблица

+------------------------+------+-----+---------+
| id                     |stake |cuota| ID      | 
+------------------------+------+-----+---------+
| 1                      |3.250 |5.00 | 1       | 
| 2                      |3.000 |5.00 | 1       |
+------------------------+------+-----+---------+

Все работает отлично в PHP.

но я хотел бы сделать это с mysql в запросе.

Я хотел бы иметь его в MySQL без использования PHP → этот результат * 21.25 *

$sum = 0;
foreach ($fromMysql as $row):
$sum+= $row['stake'] * $row['cuota'] - $row['stake'];  
/*individual sum.  first = 11.25 and second = 10.00*/
endforeach;
echo $sum; /* = 21.25 */
Теги:
database
mysqli

2 ответа

1
Лучший ответ

Во-первых, я не очень хорошо знаком с PHP, поэтому я, возможно, не понимаю вашу проблему, но, как я понимаю, результат должен быть 25 вместо 21.25.

В любом случае, в MySQL вы должны сделать что-то вроде этого:

SELECT SUM(stake * cuota - stake) FROM [your_table]

Этот запрос даст вам результат 25. Чтобы получить запрос с ожидаемым результатом (21.25), вы можете сделать:

SELECT SUM(stake * cuota - cuota) FROM [your_table]
  • 1
    SELECT SUM(stake * cuota - stake) FROM tips where resultado = 1
-1

Насколько я знаю, это невозможно, и это не должно быть сделано в sql, так как это язык запросов данных, а не язык для расчета цен.

Я считаю, что использовать решение, которое у вас в настоящее время

foreach ($fromMysql as $row) {
    $sum+= $row['stake'] * $row['cuota'] - $row['stake'];
}  

Это может выглядеть немного чище

  • 1
    Тогда почему в SQL есть такие функции, как SUM() которые делают именно это?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню