Ir para conteúdo

Arquivado

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

Rafalima

Média Diretamente No Mysql

Recommended Posts

Tenho uma tabela no BD chamada "produtos" onde no campo "valor" possui 33 valores em reais. Para conseguir a media geral total por mês, fim assim:

1-nesta variável pego o mês atual, $mes = date(m);

2-no SELECT faço a soma de tudo com sum(valor) e guardo o resultado na variável $soma;

3-para chegar no resultado final pego $soma/$mes, assim consigo a média por mês.

Legal funciona certinho.

Mas o problema será quando passar de dezembro para janeiro. Ou seja, terei um valor bem maior do que tenho hoje e conforme fiz, terei a soma total dividida por 1, onde o certo seria por 13. Como fazer isso diretamente no mysql?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Kakaroto, valeu pelo apoio, mas o valor da média mensal é necessária. A média do valor de todos os produtodos não é importante. Não sei se fui claro.

Por exemplo: Gastei R$ 5000,00 em 5000 produtos para minha loja. Quero saber qual a média de gasto por mês e não por produto. Ou seja, 5000 dividido pelo mês atual (7) = 714,3. Então de janeiro até agora minha média de gasto foi R$ 714,3.

Estou tentando deixar automatico no mysql, pois quando chegar o mês de janerio de 2016, a divisão tem que ser feita por 13. No meu script atual terei que colocar o 13 manualmente. Por isso que não tá legal.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Algo assim ...

 

Select avg(valor)

From vendas

Where year(data_venda) = 2015

And month(data_venda) = 6

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ainda não é isso. Acredito que deve haver alguma maneira de mostrar o resultado automático. Eu conheço pouquíssimo desta e de outras linguagens. Mas continuo pesquisando e testando. Conforme seu exemplo, não terei resposta quando entrar o mês 7, então terei que alterar o mês manualmente. Não é essa a ideia. Mas de qualquer forma valeu!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente assim:

SELECT
  SUM(valor) AS total,
  YEAR(data_venda) AS ano,
  MONTH(data_venda) AS mes
FROM vendas
WHERE YEAR(data_venda) = 2015
GROUP BY ano, mes
# agrupado pelo ALIAS, certifique-se que não exista
# campos com estes nomes na tabelas envolvidas.

No exemplo acima, a consulta exibe a soma mensal no ano de 2015.

Compartilhar este post


Link para o post
Compartilhar em outros sites

ou de forma automática

SELECT
SUM(valor) AS total,
YEAR(data_venda) AS ano,
MONTH(data_venda) AS mes
FROM vendas
WHERE YEAR(data_venda) = year(CURDATE)
AND MONTH=MONTH(CURDATE)
GROUP BY ano, mes

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.