Ir para conteúdo

POWERED BY:

Arquivado

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

algoll

[Resolvido] Somar valores no mysql usando o SUM com duas condiçõe

Recommended Posts

Salve galera!!

 

Estou com um probleminha aqui e não consigo solucionar:

 

Preciso somar os valores de uma tabela no mysql usando duas condições sendo a primeira pelo mês vindo de um filtro antes da consulta e a segunda pelos id`s de acordo com outra condição, vou deixar o código que to fazendo para entenderem melhor:

 

$pg_var_esc = mysql_query("SELECT * FROM cont_pg_var_escritorio WHERE escritorio_c_custo = '$centro_custo'");
           $var_esc = mysql_fetch_object($pg_var_esc);

               while(!empty($var_esc))
                   {
                       $escritorio_id = $var_esc->escritorio_id;

                       $pg_var_escritorio = mysql_query("SELECT SUM(valor) as somaEscritorio FROM parc_escritorio WHERE MONTH(vencimento)=$mes1 AND escritorio_id ='$escritorio_id'");
                       $cont_var_escritorio = mysql_fetch_array($pg_var_escritorio);

                        echo $cont_var_escritorio["somaEscritorio"];echo"-";

                       $var_esc = mysql_fetch_object($pg_var_esc);
                   }

 

é assim que estou fazendo, porém ao invés de imprimir a soma dos valores está imprimindo os valores individualmente como um array simples. Como posso resolver isso? Preciso da soma total dos valores..

 

Obrigado pela atenção galera!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não entendi muito bem o seu questionamento, mas vai uma tentativa:

 

SELECT escritorio_id, MONTH(vencimento) as mes, SUM(valor) as soma FROM parc_escritorio GROUP BY 1, 2

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não entendi muito bem o seu questionamento, mas vai uma tentativa:

 

SELECT escritorio_id, MONTH(vencimento) as mes, SUM(valor) as soma FROM parc_escritorio GROUP BY 1, 2

 

Obrigado pela resposta vou tentar explicar melhor minha intenção:

 

Eu tenho uma tabela que recebe os dados de uma conta a pagar (cont_pg_var_escritorio), sendo que nessa tabela a conta pode ser de um centro de custo 1 ou centro de custo 2, e tenho uma segunda tabela que recebe os valores e os vencimentos desta mesma conta (parc_escritorio), ok?

 

estou gerando um relatório com os totais a pagar, sendo que nele deverá aparecer os totais de todas as contas cadastradas, sendo que será filtrado pelo centro de custo e pelo mês escolhido pelo usuário, basicamente o usuário escolhe o centro de custo que quer ver os totais e o mês desejado e deverá mostrar o total exato. Da forma que eu to fazendo está listando os valores cadastrados ao inves de soma-los e me mostra apenas do 1º indice. Consegui ser claro?

 

os campos das respectivas tabelas sao:

 

cont_pg_var_escritorio:

escritorio_id, escritorio_desc, escritorio_c_custo e escritorio_parcelas

 

parc_escritorio:

parc_esc_id, escritorio_id, vencimento e valor

 

 

eu poderia adicionar um campo centro de custo na tabela de parcelas para facilitar tambem, mas como na realidade sao mais de 10 tabelasde contas que terão a mesma lógica e como todas as telas esta já com seus respectivos cruds funcionando que não é muito viável editar tudo agora, hehe

 

 

rsrs

Compartilhar este post


Link para o post
Compartilhar em outros sites

cont_pg_var_escritorio:

escritorio_id, escritorio_desc, escritorio_c_custo e escritorio_parcelas

 

parc_escritorio:

parc_esc_id, escritorio_id, vencimento e valor

 

select a.escritorio_id , a.escritorio_desc , sum(b.valor) valor
from cont_pg_var_escritorio a,parc_escritorio b
where a.escritorio_id = b.escritorio_id
and   a.escritorio_c_custo  = '123'
group by a.escritorio_id , a.escritorio_desc

Compartilhar este post


Link para o post
Compartilhar em outros sites

cont_pg_var_escritorio:

escritorio_id, escritorio_desc, escritorio_c_custo e escritorio_parcelas

 

parc_escritorio:

parc_esc_id, escritorio_id, vencimento e valor

 

select a.escritorio_id , a.escritorio_desc , sum(b.valor) valor
from cont_pg_var_escritorio a,parc_escritorio b
where a.escritorio_id = b.escritorio_id
and   a.escritorio_c_custo  = '123'
group by a.escritorio_id , a.escritorio_desc

Obrigado pelo retorno,

 

no caso eu faria esse select no lugar de usar um while para retornar todos os id`s do centro de custo em questão? porque não funcionou, heh

 

Acho que o problema está em usar um Where com um laço de repetição pois quando eu tipo o "AND escritorio_id ='$escritorio_id'" ele soma os valores corretamente, mas soma todos os valores do mes.

Compartilhar este post


Link para o post
Compartilhar em outros sites
no caso eu faria esse select no lugar de usar um while para retornar todos os id`s do centro de custo em questão?

 

Sim, é mais simples.

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.