Сумиране по текущ месец

5 отговора 371 прегледа
#1

Сумиране по текущ месец

Изпитвам трудности с формулиране на следното SQL запитване
Имам база MySQL
Таблица за гласуване с много полета но две интересни - rating - INT - стойност на гласуването, data - DATE - дата на гласуването
Искам да направя месечна класация, която да включва само оценките дадени за текущия месец.
Проблема ми е с това определяне на текущия месец и на датите, които принадлежат в него. Явно не познавам толкова добре MySQL и не мога да си представя логиката.

Българската литература [линк]
Е-журнал за нова българска литература
Отговор
в отговор на Ивaнyшka #2

Re: Сумиране по текущ месец

$MyDate = date(Y)."-".date(m)."-";

$query = "select sum(rank) from MyTable where date like '$MyDate%' ";

Отговор
в отговор на Ивaнyшka #3

Re: Сумиране по текущ месец

Ако под "текущ" разбираш - този дето още не е свършил - ето ти един вариант, който може да използва и индекс

.... WHERE date_col >= DATE_FORMAT(CURDATE(), '%Y-%m-%01');

т.е. просто грабваш днешната дата - select curdate();
примерно 2002-12-25 ама деня го сменяш с първо число -> 2002-12-01 и готовоа

Ако искаш "Сума по месеци"

SELECT MONTH(date_col) AS m, SUM(rating) FROM yourtbl GROUP BY m, ORDER BY date_col;

salle.online.bg/sig
Отговор
в отговор на salle #4

Re: Сумиране по текущ месец

Blagodarq, idealno e

Българската литература [линк]
Е-журнал за нова българска литература
Отговор
в отговор на salle #5

Re: Сумиране по текущ месец

Само още едно питане
в горния израз става натрупване на сумите по месеци
т.е събира резултатите за май 2001 и май 2002
как да го направя да се разграничава и по години

Българската литература [линк]
Е-журнал за нова българска литература
Отговор
в отговор на Ивaнyшka #6

Re: Сумиране по текущ месец

Ами отговора се съдаржа във въпроса ти.

"разграничава и по години"

Как го правиш по Месеци?
с GROUP BY месец

как да го направиш И по години?

с GROUP BY година, месец;

Мога да ти го разхиша подробно, но ще ти е по-полезно като имаш идеята да дъвършиш реализацията

salle.online.bg/sig
Отговор