Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Reverson

Consulta retornando o somatorio de valores por mes em uma unica linha

Recommended Posts

Bom dia a todos !

Estou solicitando a ajuda dos colegas para me ajudarem com um pequeno problema

Me deparei com uma situação a qual eu não encontrei solução por meio de uma única consulta no Mysql

Tenho um sistema de contas a receber e preciso retornar a soma dos recebimentos mes a mes agrupados cor cliente em uma unica linha mas separados por mes ou seja:

 

Nome Janeiro Fevereiro Março Abril Maio etc

------------------ --------- --------- --------- --------- --------- ---

Fulano 10,00 100,00 0,00 1000,00 50,00

Beltrano 13,00 190,00 0,00 900,00 60,00

João 20,00 140,00 0,00 100,00 70,00

 

Sendo que na base de dados tem o nome e a data do vencimento dd/mm/aaaa

 

Tentei usar o case e when mas os resultados foram frustrantes no sentido de separar os valores pelo mes.

 

Alguem ja passou por isso e pode me ajudar?

 

desde já agradeço a atenção.

Compartilhar este post


Link para o post
Compartilhar em outros sites

quando tive que fazer isso me deu um problema muito grande também onde só conseguir resolver no código da linguagem em que programava no caso PHP.

 

retornei tudo e fui tratando as matrizes de forma que desmontava e criava uma nova até chegar onde queria.

 

procure algo sobre LEFT JOIN depois vim pesquisar mais sobre o isso e descobri que isso pode ajudar..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tentei usar o case e when mas os resultados foram frustrantes no sentido de separar os valores pelo mes.

 

Publique a query em que tentou fazer.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Partindo do principio que você quer exibir apenas as coisas desse ano [ year(vencimento) = year(now()) ] :

 

Select funcionario, 
Sum(Jan) Jan , Sum(Fev) Fev, Sum(Mar) Mar, Sum(Abr) Abr,
Sum(Mai) Mai , Sum(Jun) Jun, Sum(Jul) Jul, Sum(Ago) Ago,
Sum(Set) Set, Sum(Out) Out , Sum(Nov) Nov, Sum(Dez) Dez
from
(
select funcionario,
if(month(vencimento)=1 and year(vencimento) = year(now()),valor,0) Jan,
if(month(vencimento)=2 and year(vencimento) = year(now()),valor,0) Fev,
if(month(vencimento)=3 and year(vencimento) = year(now()),valor,0) Mar,
if(month(vencimento)=4 and year(vencimento) = year(now()),valor,0) Abr,
if(month(vencimento)=5 and year(vencimento) = year(now()),valor,0) Mai,
if(month(vencimento)=6 and year(vencimento) = year(now()),valor,0) Jun,
if(month(vencimento)=7 and year(vencimento) = year(now()),valor,0) Jul,
if(month(vencimento)=8 and year(vencimento) = year(now()),valor,0) Ago,
if(month(vencimento)=9 and year(vencimento) = year(now()),valor,0) Set,
if(month(vencimento)=10 and year(vencimento) = year(now()),valor,0) Out,
if(month(vencimento)=11 and year(vencimento) = year(now()),valor,0) Nov,
if(month(vencimento)=12 and year(vencimento) = year(now()),valor,0) Dez
)z
group by funcionario



Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.