Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Leudassdf

Select distinct top 10

Recommended Posts

Leudassdf

Boas pessoal,

eu tenho uma tabela chamada transacoes e outra produtos.

Eu quero fazer um select distinct top 10 a tabela transacoes.

Eu fiz isto:



SELECT DISTINCT TOP (10) transacoes.cod_produto,produto.descricao
FROM			transacoes,produto
where transacoes.cod_produto=produto.cod_produto

No entanto a query acima indicada nao funciona. basicamente eu quero saber qual o top de vendas e depois mostrar os dados dos produtos mais vendidos.Neste caso só coloquei para mostrar a descricao do produto no entanto depois será para adicionar mais campos informativos em relação aquele produto

Share this post


Link to post
Share on other sites
nelsonr

Algo assim?

select top 10 t.cod_produto, p.descricao, t.quantidade from (
select cod_produto, count(*) as quantidade from transacoes group by cod_produto) as t
left join produto as p on p.cod_produto = t.cod_produto
order by t.quantidade desc

Share this post


Link to post
Share on other sites
pmg

Mete o DISTINCT depois do TOP, não te esqueças do ORDER BY.

select top (10) distinct transacoes.cod_produto, produto.descricao
from transacoes, produto
where transacoes.cod_produto = produto.cod_produto
order by <WHATEVER>

Edited by pmg

What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Share this post


Link to post
Share on other sites
Leudassdf

Mete o DISTINCT depois do TOP, não te esqueças do ORDER BY.

select top (10) distinct transacoes.cod_produto, produto.descricao
from transacoes, produto
where transacoes.cod_produto = produto.cod_produto
order by <WHATEVER>

Boas,

Infelizmente nao funcionou.

Share this post


Link to post
Share on other sites
pikax

SELECT top (10) transacoes.cod_produto, produto.descricao
FROM transacoes
  LEFT JOIN produto ON transacoes.cod_produto = produto.cod_produto
GROUP BY transacoes.cod_produto,produto.descricao

e assim?


Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender.

A beleza de um código está em decompor problemas complexos em pequenos blocos simples.

"learn how to do it manually first, then use the wizzy tool to save time."

"Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."

Share this post


Link to post
Share on other sites
Leudassdf

SELECT top (10) transacoes.cod_produto, produto.descricao
FROM transacoes
  LEFT JOIN produto ON transacoes.cod_produto = produto.cod_produto
GROUP BY transacoes.cod_produto,produto.descricao

e assim?

Infelizmente tambem não. Dá-me o seguinte erro. Cannot use an aggregate or subquery in an expression used for the group by list of a GROUP BY clause

Leudassdf,

experimentaste o query que coloquei aqui?

Desculpa so responder agora.

Na altura nao tinha experimentado a tua.Para ser sincero quando fui consultar as respostas estava muito ocupado e nem me apercebi da tua resposta.

Respondendo a tua pergunta,Sim, a query funcionou.

Muito obrigada.

Cumprimentos

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.