Ir para conteúdo

POWERED BY:

Arquivado

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

vitinho.vitor

[Resolvido] Consulta MySQL com sum()

Recommended Posts

Olá pessoal, estou usando a função sum() do MySQL para somar os valores de uma coluna.

Porém ele está retornando valores que eu não consegui encontrar somando os valores.

Segue a SQL:

SELECT sum(pedidos.total) as total_faturado, pedidos.*, usuarios.* 
FROM pedidos, usuarios 
GROUP BY pedidos.id_user, usuarios.id_gerente, pedidos.status, pedidos.data 
HAVING pedidos.id_user = usuarios.id AND usuarios.id_gerente = '$id_gerente' AND (pedidos.status = 'Entregue' OR pedidos.status = 'Faturado') AND pedidos.data BETWEEN '$de' AND '$ate'

 

Obrigado

Vitor

 

Ninguém pessoal??

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, você poderia colocar a estrutura da tabela ou parte dela, e alguns valores das linhas pra gente poder visualizar o seu problema.

Se você quer o valor total poderia usar um union e mostrar o valor na última linha do resultado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

A Tabela "pedidos" têm muitas colunas entõ só vou mostrar algumas:

 

Pedidos:

-id

-id_user

-id_est // id do estabelecimento

...

-status

...

-qtde_total

...

-total //preciso somar essa coluna filtrando o status e o id_gerente

...

...

 

E a tabela

 

usuarios:

-id //id_user

-id_gerente //preciso filtrar isso

...

-usuario

...

...

 

Obrigado

Vitor

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quando usar OR e AND separe por parenteses para que obtenha o resultado correto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Motta,

 

Já estou usado os parêntesis:

 

SELECT sum(pedidos.total) as total_faturado, pedidos.*, usuarios.* 
FROM pedidos, usuarios 
GROUP BY pedidos.id_user, usuarios.id_gerente, pedidos.status, pedidos.data 
HAVING pedidos.id_user = usuarios.id AND usuarios.id_gerente = '$id_gerente' AND (pedidos.status = 'Entregue' OR pedidos.status = 'Faturado') AND pedidos.data BETWEEN '$de' AND '$ate'

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal,

consegui resolver não usando o sum()

usei desta forma:

while ($row = mysql_fecth_array($sql)) {
  $total = $row['total'];
  $total_faturado = $total+$total_faturado;
}

Obrigado

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.