Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Galera,
Seguinte, tenho uma tabela com os campos
id | id_titulo | data
Gostaria de saber qual select devo usar pra mostrar os mais vendidos, baseando no campo id_titulo, o que aparece mais vezes.
No aguardo.
Abraços!
Não, eu preciso exibir na tela o id_titulo mais vendido, ou seja, o que mais aparece nos registros.
Cara não sei exatamente como fazer isos, vou dár uma olhada no fórum de SQL para ver se consigo algo para você.
baseando no campo id_titulo, o que aparece mais vezes.
você deve usar a função COUNT retorna o número de valores (valores nulos não serão computados) da coluna especificada.exemplo
SELECT COUNT(column_name) FROM tabela order by id_titulo DESC
se tivesse um campo com numero de
vendas ficaria bem mais facil, teria que apenas ver o maior numero
Não deu certo, ele retorna o número de registros total da tabela.
SELECT Count(id_titulo) AS intTotal FROM tabela WHERE id_titulo=seu titulo
OK. Com esse select ele me retorna quantos foram vendidos, mas e se eu quiser ordenar por exemplo.
Os 10 mais vendidos.
Como faço a ordenação?
seria bom você ter um campo na tabela mais vendidos e fazer o SELECT atraves dele, depois pode até usar o SELECT TOP 10, pegando os 10 mais
Se usar o sum não resolve ?
SELECT SUM(id) as "idtop" FROM tabela
A função SUM () retorna a soma total de uma coluna numérica.
Com essa estrutura de tabela nao rola em uma SQL só...
Oq você pode fazer é fazer primeiro uma SQL DISTINCT nos titulos.. ai dentro do loop dessa primeira, fazer outra SQL COUNT pegando os titulos da primeira consulta e jogando em uma variavel, só assim você poderá fazer isso com essa estrutura...
Att;
se você tivsse um campo na sua tabela, com o nome de numero de vendas poderia usar direto o SELECT MAX e ele mostraria a maior quantidade de vendas...
Seguinte amigo, eu falei com meu pai que é DBA e ele me passou um sql que retorna o que você pediu:
select CAMPO, count() as qtd from TABELA group by CAMPO having count() = (select max(count(*)) from TABELA group by CAMPO)
Espero que te ajude.
usa o SELECT MAX no campo que você quer saber o maximo valor de vendas
como citei acima...
O código de nosso amigo augustoclaro é o que provavelmente mais se aproxima da solução, mas acho que pode ser simplificado da seguinte forma:
select id_titulo, count(*) as qtd
from tabela
group by id_titulo
order by qtd desc
Caso não funcione desta forma (não lembro se o Access aceita nesta sintaxe), tente o seguinte:
select id_titulo, count(*) as qtd
from tabela
group by id_titulo
order by count(*)
Abs!
select * from tabela order by id_titulo DESC
E isso que você precisa?