Таблица Пример:
| date_time | quantity
-------------------------
| 2017-08-12 09:11:51 | 1
| 2017-08-12 10:12:51 | 1
| 2017-08-12 12:45:51 | 1
| 2017-08-13 11:12:51 | 1
| 2017-08-13 11:12:51 | 1
| 2017-08-13 12:45:51 | 1
| 2017-08-13 13:57:51 | 1
| 2017-08-14 14:23:51 | 1
| 2017-08-14 16:34:51 | 1
| 2017-08-15 16:21:51 | 1
| 2017-08-16 14:31:51 | 1
Я могу получить результат с помощью этого запроса:
SELECT DATE(date_time) as date_time
,SUM(quantity) as quantity
FROM report
WHERE date_time BETWEEN '' AND ''
GROUP BY DATE(date_time)
HAVING SUM(quantity) < 3
Результат:
| date_time | quantity
-------------
| 2017-08-14 | 2
| 2017-08-15 | 1
| 2017-08-16 | 1
После этого я хочу добавить количество СУММ. Например:
quantity
---------
| 4
Чтобы достичь этого, я знаю, что мне нужно использовать результат в качестве подзапроса для последующей оценки. Я пробовал это, но это неправильно:
SELECT SUM(topla) FROM (
( SELECT DATE(date_time) as date_time
,SUM(quantity) as quantity
FROM report
WHERE date_time BETWEEN '' AND ''
GROUP BY DATE(date_time)
HAVING SUM(quantity) < 3
) AS topla
)
Как я могу подсчитать количество?
Сначала вы должны суммировать количество по имени столбца. (В примере я назвал его sub_quantity)
Во-вторых, вам не нужно выбирать дату.
Таким образом, ваш запрос может быть
SELECT SUM(sub_quantity) AS quantity
FROM
( SELECT SUM(quantity) AS sub_quantity
FROM report
WHERE date_time BETWEEN '' AND ''
GROUP BY DATE(date_time)
HAVING SUM(quantity) < 3) a
Просто замените topla количеством и удалите "как topla" из запроса перед topla.
SELECT SUM(quantity) total FROM (
( SELECT DATE(date_time) as date_time
,SUM(quantity) as quantity
FROM report
WHERE date_time BETWEEN '' AND ''
GROUP BY DATE(date_time)
HAVING total < 3
)
)
Чтобы использовать функцию SUM, вы должны указать имя столбца, а не имя таблицы.
error: Error: ER_DERIVED_MUST_HAVE_ALIAS: Every derived table must have its own alias