@Evgeny-app

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

Есть запрос который выводит все не повторяющиеся значения и это работает:
$query = "SELECT DISTINCT ".$fields."
                      FROM tbl_report all_months
                      ".$joins."
                      WHERE all_months.date > '".$year."-01-01 00:00:00' AND all_months.date < '".$year."-12-31 24:59:59'";

но если я хочу просуммировать эти значения то вы дает синтаксическую ошибку (CDbCommand не удалось исполнить SQL-запрос: SQLSTATE[42000]: Syntax error or access violation: 1064)
$query = "SELECT SUM ".$fields."
                      FROM tbl_report all_months
                      ".$joins."
                      WHERE all_months.date > '".$year."-01-01 00:00:00' AND all_months.date < '".$year."-12-31 24:59:59'";

Почему так??
  • Вопрос задан
  • 3738 просмотров
Пригласить эксперта
Ответы на вопрос 3
@andymitrich
Software Developer
А вы для начала откройте мануал по MySQL, почитайте, например, как правильно использовать SUM() и тогда, поверьте, всё и прояснится.
Ответ написан
Комментировать
DmitriyEntelis
@DmitriyEntelis
Думаю за деньги
SUM это агрегирующая функция, она может принимать только 1 аргумент.
www.tizag.com/mysqlTutorial/mysqlsum.php
Если вам нужно просуммировать столбцы в рамках одного кортежа - пишите явно:
SELECT (field1+field2+field3) AS field_sum FROM ...


PS
Если Вы считаете какую то статистику - то сомневаюсь что в первом запросе нужен distinct, скорее всего запрос составлен неправильно
Ответ написан
falsebyte
@falsebyte
"SELECT SUM (".$fields.")
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы