Ir para conteúdo

POWERED BY:

Arquivado

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

marcelo2605

[Resolvido] Agrupar valores por ano

Recommended Posts

Preciso somar valores de uma tabela que pertencem ao mesmo ano.

 

Comecei com isso:

 

SELECT SUM(agua), SUM(aluguel), SUM(multa) FROM calculo WHERE codigo_imovel = %s

 

Esse query me dá a soma de todas as colunas da tabela do imóvel. Mas preciso dividir os valores por ano. Tentei isso mas não deu certo:

 

SELECT DATE_FORMAT(date,'%Y') AS created_year, SUM(agua), SUM(aluguel), SUM(multa) FROM calculo GROUP BY created_year WHERE codigo_imovel = %s

Compartilhar este post


Link para o post
Compartilhar em outros sites
... Mas preciso dividir os valores por ano ...

 

SELECT DATE_FORMAT(date,'%Y') AS created_year, SUM(agua), SUM(aluguel), SUM(multa) 
FROM calculo 
GROUP BY DATE_FORMAT(date,'%Y') 
WHERE codigo_imovel = %s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não faço idiea ...

 

Só fiz agrupar pelo ano formatado...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Creio que não, tente com outra function ...

 

SELECT EXTRACT(YEAR FROM date) AS created_year, SUM(agua), SUM(aluguel), SUM(multa) 
FROM calculo 
GROUP BY EXTRACT(YEAR FROM date)
WHERE codigo_imovel = %s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Motta, criei uma tabela de teste (id, ano (year), user(int), valor(decimal)

 

Isso deu certo:

SELECT ano, sum(valor)
FROM teste
GROUP BY ano

 

Mas isso não:

 

SELECT ano, sum(valor)
FROM teste
GROUP BY ano
WHERE `user` = 1

 

GROUP BY e WHERE não funcionam juntos?

Compartilhar este post


Link para o post
Compartilhar em outros sites

SELECT ano, sum(valor)
FROM teste
WHERE `user` = 1
GROUP BY ano

 

O EXTRACT não funcionou ?!

Compartilhar este post


Link para o post
Compartilhar em outros sites

GROUP BY e WHERE não funcionam juntos?

 

Eu estava assistindo a um tutorial hoje, onde dizia que realmente GROUP BY + WHERE não funciona, você deve substituir o WHERE por HAVING.

Ficando desta forma:

 

SELECT ano, sum(valor)

FROM teste

GROUP BY ano

HAVING `user` = 1

 

Acho que também daria certo.

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.