2015-01-12 4 views
-2

мне нужен отчет о количестве продуктов, от месяца и года ... утра использовать этот запрос, но выборки сумма 0Mysql SUM сумма Между месяц и год

SELECT SUM(amount) as amt 
FROM `products` 
WHERE `cid`='14' 
AND `sid`='24' 
AND MONTH(`date`)='03' 
AND YEAR(`date` BETWEEN '2014' AND '2016') 
+0

сделал u означает отображение структуры базы данных? – fana

+0

like enter 3 записи месяц 03 и год 2014, запись cid = 14 и sid = 24, – fana

+0

@fana plz поделиться своей структурой таблицы и некоторыми фиктивными данными –

ответ

2

Попробуйте это: (будет перенести данные из 03/2014, 03/2015, 03/2016)

SELECT SUM(amount) as amt 
FROM `products` 
WHERE `cid`='14' 
AND `sid`='24' 
AND MONTH(`date`)='03' 
AND YEAR(`date`) BETWEEN '2014' AND '2016' 

Если вы хотите, чтобы привести все данные между этими двумя датами, попробуйте следующее:

SELECT SUM(amount) as amt 
FROM `products` 
WHERE `cid`='14' 
AND `sid`='24' 
AND `date` >= '2014-03-01 00:00:00' AND `date` < '2016-04-01 00:00:00' 
+0

@fana принять ответ, если он работает для u –

+0

@Bit_hunter Этот ответ не работает для меня. Я не принял этот ответ. – fana

0

Попробуйте этот запрос: - [Испытано себя]

Таблица данных-

id cid sid amount date 
1 14 24 200 2014-03-09 
2 14 24 30 2014-03-09 
3 14 24 50 2015-05-08 

Запрос: -

SELECT SUM(amount) as amt FROM products WHERE cid='14' AND sid='24' AND MONTH(date)='3' AND YEAR(date) BETWEEN '2014' AND '2016' 

Выход: -

amt 
230 

enter image description here

Примечание: - Убедитесь, что тип данных столбца даты равен DATE

+0

'Пожалуйста, проверьте количество повторений снимков экрана. Сентябрь 2013 года и повторите эту же сумму в сентябре 2014 года. Эта запись выбирается с помощью вашего запроса. Код центра здесь Проверьте эту ссылку. Загрузите снимок экрана ... [ссылка] (http: /prntscr.com/5rp65w) – fana

+0

См. данные таблицы http://prntscr.com/5rphoo и результат запроса http://prntscr.com/5rphfj –

+0

, когда использовать цикл вверх по этому запросу и повторить год и месяц много раз этот запрос снова распечатать запись в следующем году с тем же месяцем, вы видите последний снимок экрана. надеюсь, что так поймите меня. Когда я отправляю форму с двумя датами, мне также нужен список месяцев в левом столбце между двумя датами. для списка месяцев я использую 'foreach' после этого цикла, я запускаю ваш запрос, когда запрос выполняется в цикле, он повторяет запись между годом и тем же месяцем ... См. Мой экран снова [ссылка] (http: // prntscr.com/5rpoxp) – fana

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