Ir para conteúdo

POWERED BY:

Arquivado

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

andrea cerqueira

Sum

Recommended Posts

Tenho tres tabelas, uma de anunciante, uma do pedido e outra das faturas do pedido que são regadas todo mês, estou querendo faz um ranking dos anunciantes que mais gastaram.

 

Fiz assim:

 

SELECT id, nome FROM anunciante a,
(SELECT SUM(amount) soma, order_id, status FROM anuncios_retorno) b,
(SELECT id_pedido, id_anunciante FROM anuncios) c
WHERE c.id_anunciante = a.id
AND b.order_id = c.id_pedido
ORDER BY b.soma DESC

só que não sei como usar o SUM pois ele sempre soma todo o amount da tabela e eu preciso que ele some só de cada anunciante pra eu listar todos os anunciantes do banco com a soma dos pedidos de cada anunciante (soma) em ondem decrescente pra eu ter o ranking.

complicado :)

 

help?

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu fiz assim agora:

 

SELECT a.id, a.nome, b.soma FROM anunciante AS a,
(SELECT SUM(amount) AS soma, order_id, status FROM anuncios_retorno GROUP BY order_id) AS b,
(SELECT id_pedido, id_anunciante FROM anuncios) AS c
WHERE c.id_anunciante = a.id
AND b.status = 0
AND b.order_id = c.id_pedido
GROUP BY a.id
ORDER BY b.soma DESC

funcionou mas eu não gostei pra falar a verdade, pq eu tive que colocar um GROUP BY order_id e vi nenhum sentido nisso, e depois eu tive que colocar ou GROUP BY a.id pq estava duplicando vários resultados.

 

alguma dica?

Compartilhar este post


Link para o post
Compartilhar em outros sites

sempre, tenho que fazer mil relatórios e volta e meia empaco em algum, tá funcionando como eu escrevi, mas eu achei estranho :)

você não baixou aquela video aula que te falei né? cheguei a postar no 4shared, tá lá ainda.

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.