citar os 10 produtos mais constados

14/03/2006

0

Pessoal, eu tenho uma tabela chamada HISTORICO. Quando eu vou vender pro cliente usa-se a tabela VENDAS. Por exemplo, o cliente chegou, o nome dele é JOSÉ e ele irá comprar 5 produtos.

inicia-se um cadastro na tabela VENDAS, que puxará o nome do cliente, os dados de valor final, etc. Só que como ele pode comprar vários produtos, eu precisei criar outra tabela, a histórico, que vai armazenando os produtos que ele quer, e pra se identificar depois, copia o campo CODVENDA da tabela VENDAS para o campo CODVENDA da tabela HISTÓRICO. esse foi meu plano, deu tudo certo, quando vou imprimir, sai tudo certo, tudo relacionado certinho.

agora que descrevi as tabelas tenho um problema.



PROBLEMA REAL:

me pediram pra mim implementar os produtos mais vendidos. então terei que fazer uma busca na tabela HISTÓRICO dos produtos que mais aparecem (poderia buscar pelo código que mais aparece). a tabela seria assim:

18 - XXX
18 - XXX
1 - MMM
18 - XXX
15 - OOO
14 - UUU
14 - UUU
18 - XXX
15 - OOO
18 - XXX

contando o produto que mais foi vendido (ou seja, o que mais consta está na tabela HISTÓRICO) é o produto de código 18. O próximo seria o 14 e assim por diante, até chegar ao 10° produto mais vendido. então, nesse form teria que mostrar os 10 produtos mais vendidos, seria assim a lista:

18 - XXX
14 - UUU
15 - 000
e assim até chegar no 10°.

galera, como eu poderia fazer essa contagem e filtrar tudo isso? como poderia fazer para ele contar os que mais consta na tabela histórico e colocar em ordem nos 10 mais vendidos no DbGrid?

agradeço muito se alguém puder me ajudar.


Aspirante

Aspirante

Responder

Posts

14/03/2006

Emerson Nascimento

(sempre que puder, informe o banco de dados utilizado, sua versão, os componentes que usa para acesso à esse banco de dados e qual a versão do delphi)

select top 10
  CodProduto, Sum(Quantidade)
from
  Historico
group by
  CodProduto
order by 
  CodProduto

a instrução acima funciona no SQL Server.
para o Firebird, troque TOP 10 por FIRST 10.

para MySQL:
select
  CodProduto, Sum(Quantidade)
from
  Historico
group by
  CodProduto
order by 
  CodProduto limit 10



Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar