2012-01-02 2 views
1

У меня есть следующая таблица в базе данных. Я хочу иметь возможность получить сумму стоимости, но только на основе даты. так что если сегодня было 1 января, я хочу только сумму за каждое значение, которое было 1-го числа в качестве даты. Я использую следующий:как выбрать сумму столбца на основе даты

SELECT SUM(value) AS value_today FROM table_value GROUP BY date ORDER BY date DESC 

Только проблема в том, что он возвращает только сумму на 22 декабря и ничего нового введенную в базу данных.

+-------+---------+------------+ 
| ID | value | date  | 
+-------+---------+------------+ 
| 1 | 3  | 2011-12-22 | 
| 2 | 2  | 2011-12-22 | 
| 3 | 4  | 2011-12-22 | 
| 4 | 2  | 2012-01-01 | 
+-------+---------+------------+ 

ответ

3
SELECT SUM(value) AS value_today FROM table_value WHERE date = CURDATE() 

Что-то вроде этого?

Если это не так, может быть, вы можете перефразировать свой вопрос.

+0

Я полагаю, вы используете это в php-скрипте или что-то в этом роде? Вы должны сначала проверить, есть ли результат. Просмотрите документацию об обертке db, чтобы получить количество строк из набора записей. –

+0

получил это благодаря работе – bammab

+0

Вам не нужны ни 'GROUP BY', ни' ORDER BY' –

1
SELECT sum(value), date FROM table WHERE date = 2012-01-01 ORDER BY date DESC 
3
SELECT SUM(value) AS value_today FROM table_value WHERE date = DATE(NOW()) 

Таким образом, вы могли бы retrive только сегодня сумма данных.

Смежные вопросы