Ir para conteúdo

Arquivado

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

Gilberto Tobias

[Resolvido] Select Top + Distinct

Recommended Posts

Boa, fórum friends

 

Preciso de um help p concluir uma área de artigos em destaque, onde seriam listados os 10 últimos artigos em destaque s/ repetir as categorias (TYPE) dos artigos. Para isso tentei usar exemplos que encontrei pesquisando no fórum e na web, mas ñ encontrei nenhum q usasse TOP e DISTINCT (q acredito ser o caso). Tentei "escrever" de várias formas, mas ñ obtive êxito em nenhuma. Se alguém puder me ajudar na sintaxe, segue meu select, q retorna os 10 últimos porém repetindo a categoria:

 

"SELECT TOP 10 ART_ID, ART_TITLE, ART_SUBTITLE, ART_TYPE, ART_DATED, ART_EXPIRED, ART_VIEWS, ART_CLICKS, ART_STATUS, ART_APPROVED, ART_IMAGE, TYPE_ID, TYPE_NAME, TYPE_IMAGE, TYPE_STATUS FROM ARTICLES, TYPES WHERE ART_EXPIRED > Date () AND ART_TYPE = TYPE_ID AND ART_APPROVED=1 AND ART_STATUS=3 AND ART_EXPIRED > Date() AND TYPE_STATUS <> 0 ORDER BY TYPE_ID"

 

Desde já, grato pela ajuda

Gilberto

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pelo que vi não se pode usar duas funçoes de arregado na mesma consulta.Se usa TOP não pode usar DISTINCT na mesma consulta.Pode ser que tenha alguma solução para esse problema mais até agora eu não encontrei.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Elbrinner,Pensei em usar ao invés do TOP um LIMIT, o q resolveria, ñ?!Tentei algumas coisas, mas tô errando a sintaxe.Vejam só o q eu preciso:Limitar a consulta a 10 registros por exemplo;Sem repetição da Categoria;Ordenar pelo ID da Categoria;Ou seja: igual a capa do iMasters por exemplo.Alguém tem idéia???[]'s a todos

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom ja q você esta usando o sql server e o asp você pode usar array para isto

 

no seu sql você deixa a clausula distinct e use o array, mais detalhes neste link aki

http://scriptbrasil.com.br/forum/index.php...mp;#entry172012

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sua duvida é de Banco de dados e nao ASP <_< , mas vou ajudar a resolver! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

Para resolver este problema utilize a consulta como parte do from assim você consegue utilizar as duas operações que necessita. Segue o SQL para resolver seu caso: :)

 

"SELECT TOP 10 ART_ID, ART_TITLE, ART_SUBTITLE, ART_TYPE, ART_DATED, ART_EXPIRED, ART_VIEWS, ART_CLICKS, ART_STATUS, ART_APPROVED, ART_IMAGE, TYPE_ID, TYPE_NAME, TYPE_IMAGE, TYPE_STATUS

FROM (SELECT DISTINCT ART_ID, ART_TITLE, ART_SUBTITLE, ART_TYPE, ART_DATED, ART_EXPIRED, ART_VIEWS, ART_CLICKS, ART_STATUS, ART_APPROVED, ART_IMAGE, TYPE_ID, TYPE_NAME, TYPE_IMAGE, TYPE_STATUS FROM ARTICLES, TYPES WHERE ART_EXPIRED > Date() AND ART_TYPE = TYPE_ID AND RT_APPROVED=1 AND ART_STATUS=3 AND ART_EXPIRED > Date() AND TYPE_STATUS <> 0 ORDER BY TYPE_ID)"

 

Observação: Os campos nos dois select's tem de ser os mesmos senão não vai funcionar. :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo FRek,Agradeço de+ sua ajuda. Contudo, infelizmente sua sugestão tb ñ surtiu efeito, as categorias continuam se repetindo.Se houver + alguma idéia de como resolver esse problema, agradeço enormemente.Reiterados meus agradecimentos[]'sGilberto

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.