Ajuda com SUM em SQL

Delphi

12/04/2004

Boa tarde a todos.

Estou precisando gerar um gráfico com os 20 produtos mais vendidos, mas não sei como montar a minha instrução SQL. Sei que utiliza a instrução ´SUM´, mas como devo proceder ?

Grato pela atenção.


Turbo Drive

Turbo Drive

Curtidas 0

Respostas

Djjunior

Djjunior

12/04/2004

selct top 20 NomeProd, sum(qtde)
from vendas
group by NomeProd
Order by Sum(Qtde) desc


GOSTEI 0
Turbo Drive

Turbo Drive

12/04/2004

Estou usando o mysql 3.23.46 e infelizmente o ´top 20´ não funcionou. Existe alguma outra forma ?


GOSTEI 0
Marco Salles

Marco Salles

12/04/2004

Estou usando o mysql 3.23.46 e infelizmente o ´top 20´ não funcionou. Existe alguma outra forma ?


[b:e53469a147]Use o Limit[/b:e53469a147]


GOSTEI 0
Turbo Drive

Turbo Drive

12/04/2004

Desculpe a ignorância, mas o ´limit´ não vai limitar a busca dos registros ? Por exemplo: select sum(qtde) from cupomvend LIMIT 0, 50;

Nesta instrução ele vai procurar apenas o 50 primeiros registros, e o que eu quero é buscar os 20 primeiros itens mais vendidos. O colega sugeriu utilizar a instrução ´TOP´, mas creio que o mysql não aceita. Existe alguma outra forma de pesquisa?

Grato pela atenção.


GOSTEI 0
Marco Salles

Marco Salles

12/04/2004

Nesta instrução ele vai procurar apenas o 50 primeiros registros, e o que eu quero é buscar os 20 primeiros itens mais vendidos. O colega sugeriu utilizar a instrução "TOP", mas creio que o mysql não aceita. Existe alguma outra forma de pesquisa

Sim, mas a Idéia é voce fazer uma pesquisa agrupando pelos items mais vendidos e no resultado desta pesquisa voce deve limitar a quantidade de registro usando o[b:723b5c6d99] limit[/b:723b5c6d99]..Desculpe,Eu tô com Muita Pressa, mas eu Volto ainda Hoje, Para Tentar Concluir esta Pesquisa...


GOSTEI 0
Marco Salles

Marco Salles

12/04/2004

A Idéia é a mesma que o [b:7cde1cbafa]djjunior[/b:7cde1cbafa] le pasou a unica diferenca é usar o limit ao inves do top...Eu Acho que o Limit, o Mysql Aceita.. Já o ´Top´, Eu Concordo com Voce...Acho que não aceita
select Limit 20 CodProd, sum(qtde) as Total 
from vendas 
group by CodProd 
Order by Total desc
....
Eu Estou na dúvida quanto a [b:7cde1cbafa]sintase[/b:7cde1cbafa] deste instrução [b:7cde1cbafa]Limit[/b:7cde1cbafa]...Se é Limit 0,19 :?:
ou se o coloca no fim :?: ..Note Que eu Segui o Mesmo principio do ´Top´, Porque o ´Top´ eu Sei Que é Um Predicado e ele Vem Logo Depois Do Select, mas eu não tenho a mesma certeza com relação ao [b:7cde1cbafa]Limit[/b:7cde1cbafa]...Mas voce pode testar aí e postar para nós...


GOSTEI 0
Aroldo Zanela

Aroldo Zanela

12/04/2004

Colegas,

[quote:f47eb36413=´MySQL Manual´]The LIMIT clause can be used to constrain the number of rows returned by the SELECT statement. LIMIT takes one or two numeric arguments, which must be integer constants. With two arguments, the first argument specifies the offset of the first row to return, and the second specifies the maximum number of rows to return. The offset of the initial row is 0 (not 1): [/quote:f47eb36413]

mysql> SELECT * FROM table LIMIT 5,10;  # Retrieve rows 6-15
mysql> SELECT * FROM table LIMIT 5;      Retrieve first 5 rows


Notem que a cláusula LIMIT (conforme acima) pode ser utilizada como restrição para limitar o número de linhas RETORNADAS. Portanto, pode ser utilizada para o propósito da questão.


GOSTEI 0
Turbo Drive

Turbo Drive

12/04/2004

GALERA Vcs são demais !!!!!!!!!!!!!

A instrução Limit deu certo, eis o código que retorna os 20 itens mais vendidos:
select codigo, sum(quantitem) as qtde from cupvend group by codigo Order by qtde desc limit 0, 20


Muito obrigado mesmo.


GOSTEI 0
POSTAR