Ir para conteúdo

POWERED BY:

Arquivado

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

Cesão

TOP 5 de SUM

Recommended Posts

Olá amigos,

 

eu fiz este código e achei que estava funcionando no começo, mas agora com o tempo vi que não funciona perfeitamente.

eu tenho um DB Access com as seguintes tabelas e campos... (vou colocar apenas os campos necessários para esta operação que preciso)

 

Tabela Produtos

id (autoNum)

nome (texto)

categoria (numero)

 

Tabela Categorias

id (autoNum)

categoria (texto)

 

Tabela Pedidos

numero_pedido (numero)

cod_item (numero - numero do produto)

quantidade (numero - quantos produtos foram pedidos?)

 

eu tinha feito o codigo desta forma:

SQL = "SELECT TOP 5 SUM(pedidos.quantidade) AS cont, produtos.nome, categorias.categoria FROM (produtos INNER JOIN pedidos ON produtos.id=pedidos.cod_item) INNER JOIN categorias ON categorias.id=produtos.categoria GROUP BY produtos.nome, categorias.categoria ORDER BY SUM(pedidos.quantidade) DESC, produtos.nome"Set rs_top5_prod = conexao.execute(SQL)
e fiz o while desta forma:

<%do while not rs_top5_prod.eof%>Categoria: <%=rs_top5_prod("categoria")%> - Produto: <%=rs_top5_prod("nome")%> - Quantidade: <%=formatnumber(rs_top5_prod("cont"),0)%><%rs_top5_prod.movenextloop%>
Ou seja, eu quero que apareçam os 5 produtos mais pedidos.

estranho que no começo parecia funcionar, mas agora parece que cada dia muda o produto mais pedido.. na primeira vez vi que (por exemplo) o cigarro era o primeiro com 800 unidades vendidas.. e em segundo o pão, com 400.. mas no outro dia o pão estava em primeiro com 300 e o cigarro nem dava p ver na lista dos 5 primeiros.. dai depois no outro dia o cigarro eh quem estva primeiro denovo, mas nao mais com 400, agora com 250...

 

Como faço para aparecer os numeros reais e a lista real?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta assim:

SQL = "Select Top 5 * From (SELECT SUM(pedidos.quantidade) AS cont, produtos.nome, categorias.categoria FROM (produtos INNER JOIN pedidos ON produtos.id=pedidos.cod_item) INNER JOIN categorias ON categorias.id=produtos.categoria GROUP BY produtos.nome, categorias.categoria) Order By cont Desc"Set rs_top5_prod = conexao.execute(SQL)

Compartilhar este post


Link para o post
Compartilhar em outros sites

vixi.. então.. deu a mesma coisa.. eu ACHO que o meu código está certo, assim como o seu...acho que o problema eh em outra parte do sistema.. pq abri o banco e vi que dados antigos foram alterados.. algum código está alterando diversos pedidos de uma vez e está dando esta desordem.. mesmo assim, 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.