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

Может кто-нибудь сказать, пожалуйста, как я могу сложить 7 полей, которые находятся в одном ряду?

У меня есть таблица под названием накладная, которая состоит из

ID | Имя | Money1 | Money2 | Money3 | Money4 | Всего |
1 | Джон | 65,00 | 65,00 | 65,00 | 65,00 | ??? |

Как создать значение по умолчанию для строки ВСЕГО, чтобы быть Money1 + Money2 + Money3 + Money4 ??
Или при использовании запроса MySQL, как я могу показать итоги?
Что-то вроде того..

echo "<td>" . $row['money1'] . " + " . $row['money2'] ."</td>"; .......?

-1

Решение

Вам нужно будет добавить столбцы «Деньги» в вычисляемый столбец в запросе SQL:

SELECT Name, Money1, Money2, Money3, Money4, (Money1+Money2+Money3+Money4) AS Total
FROM tablename;

Затем вы можете показать итоговое значение в вашем PHP-коде, обратившись к вычисляемому столбцу:

echo "<td>" . $row['Total'] . "</td>";

ОБНОВИТЬНекоторые люди в своих ответах предположили, что агрегатная функция SUM может использоваться для решения проблемы ОП. В общем, это не всегда работает, поэтому я хотел дать некоторые пояснения, приведя два примера (на основе структуры таблицы OP): один работает и другой не работает.

Пример 1: работает, когда вы включаете столбец первичного ключа

SELECT ID, Name, SUM(Money1+Money2+Money3+Money4) AS Total
FROM tablename;

В соответствии с руководство по MySQL, запрос с агрегатной функцией, но без предложения GROUP BY, будет вести себя так, как если бы мы группировали по всем столбцам в части SELECT. Это означает, что в этом случае мы группируемся по столбцу ID, который представляет собой целое число с автоинкрементом (предположительно), и поэтому каждая строка в таблице является собственной группой. Теперь функция SUM дает нам сумму по всем строкам в каждой группе. Поэтому он даст нам СУММУ каждой строки в таблице, чего и хотел ОП.

Замечания: это также означает, что использование функции SUM бессмысленно, так как мы берем сумму за один член. Просто подумайте об этом математически:

SUM(m1 + m2 + m3 + m4) = m1 + m2 + m3 + m4

Помните, что MySQL прекрасно справляется с простыми математическими выражениями. Нет необходимости использовать СУММУ здесь 🙂

Пример 2: НЕ работает без столбца первичного ключа

SELECT Name, SUM(Money1+Money2+Money3+Money4) AS Total
FROM tablename;

Этот пример будет не дайте нам итоговые суммы, ожидаемые ОП. Еще раз мы группируемся по всем строкам (согласно руководству MySQL). Итак, предполагая, что есть несколько записей для имени «Джон», мы получим денежные поля всех строк для «Джона», которые суммируются и объединяются в одну строку результатов. Как это:

Допустим, у нас были следующие строки …


Имя Деньги1 Деньги2 Деньги3 Деньги4

Джон 1 2 2 3
Джон 1 2 2 3
Джон 1 2 2 3
Саймон 2 1 1 1

… тогда приведенный выше запрос даст нам такой результат:


Имя Всего

Иоанна 24
Симон 5
1

Другие решения

Вы используете SUM() агрегатная функция в MySQL

 SELECT Name, Money1, Money2, Money3, Money4, SUM(money1 + money2 + money3 + money4) AS total
FROM table
0

По вопросам рекламы [email protected]