Faz a consulta GRID usando o esquema de ‘RESUMO PIVOT’ do SCRIPTCASE.
http://www.scriptcase.com.br/exemplos-scriptcase/tutoriais/grid/grid29.php
Ou pode-se fazer via SQL no banco também:
elect cliente, data,
sum(if(month(data)=1 AND year(data)=2015, valor,0 )) janeiro,
sum(if(month(data)=2 AND year(data)=2015, valor,0 )) fevereiro,
sum(if(month(data)=3 AND year(data)=2015, valor,0 )) março,
sum(if(month(data)=4 AND year(data)=2015, valor,0 )) abril,
sum(if(month(data)=5 AND year(data)=2015, valor,0 )) maio,
sum(if(month(data)=6 AND year(data)=2015, valor,0 )) junho,
sum(if(month(data)=7 AND year(data)=2015, valor,0 )) julho,
sum(if(month(data)=8 AND year(data)=2015, valor,0 )) agosto,
sum(if(month(data)=9 AND year(data)=2015, valor,0 )) setembro,
sum(if(month(data)=10 AND year(data)=2015, valor,0 )) outubro,
sum(if(month(data)=11 AND year(data)=2015, valor,0 )) novembro,
sum(if(month(data)=12 AND year(data)=2015, valor,0 )) dezembro
from teste
group by cliente
Resultado:
+-----------+------------+---------+-----------+------+-------+------+-------+-------+--------+----------+---------+----------+----------+
| cliente | data | janeiro | fevereiro | maro | abril | maio | junho | julho | agosto | setembro | outubro | novembro | dezembro |
+-----------+------------+---------+-----------+------+-------+------+-------+-------+--------+----------+---------+----------+----------+
| joao | 2015-01-15 | 112.00 | 14.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 |
| pedro | 2015-01-16 | 13.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 |
| rodrigo | 2015-02-15 | 0.00 | 13.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 |
| sebastiao | 2015-02-15 | 0.00 | 14.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 |
+-----------+------------+---------+-----------+------+-------+------+-------+-------+--------+----------+---------+----------+----------+
Depois para somar os totais use na GRID a ‘Totalização’ e marque os campos.