Ir para conteúdo

POWERED BY:

Arquivado

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

marcosalmeida

Exibir noticias de várias tabelas classificando por data

Recommended Posts

Pessoal, estou com um problema,

Eu tenho de exibir a primeira noticia de cada Id_categoria_noticias sem que repita noticia da mesma categoria.

Ex: quero exibir somente a primeira noticia de cada ID=34, 35, 59, 36,50.

O problema é que estou classificando por data e quando tenho dois noticias com data mais recentes ele mostra as duas da mesma categoria.

 

Tem como limitar para que pegue somente a data mais recente de cada id?

O codigo é este abaixo:

 

<%
SET rsColunistas = Server.CreateObject("ADODB.Recordset")
rsColunistas.ActiveConnection = MM_Noticias_STRING
rsColunistas.Source = "SELECT TOP 5 id_noticia, dsc_titulo_noticia, img_chamada_principal, dt_publicacao_noticia FROM tblNoticias where id_categoria_noticia in (34,35,59,36, 50) ORDER BY dt_publicacao_noticia DESC"
rsColunistas.CursorType = 0
rsColunistas.CursorLocation = 2
rsColunistas.LockType = 1
rsColunistas.Open()
rsColunistas_numRows = 0
if not rsColunistas.BOF and not rsColunistas.EOF then
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

você pode fazer o select com where baseado na data

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas já estou usando ORDER BY dt_publicacao_noticia DESC

E é ai que estou tendo problema. Uma categoria tem duas notícias com datas mais recentes que as outras.

Desta forma exibi duas noticias da categoria ex: 34.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas já estou usando ORDER BY dt_publicacao_noticia DESC

E é ai que estou tendo problema. Uma categoria tem duas notícias com datas mais recentes que as outras.

Desta forma exibi duas noticias da categoria ex: 34.

 

Tente acrescentar a sua sentença o comando GROUP BY id_categoria_noticia

Compartilhar este post


Link para o post
Compartilhar em outros sites

pode agrupar as colunas, como na dica do Filipe ou então uma solução "forçada"

 

solução forçada (não recomendada mostrar ao chefe hehehe):faça um select para cada ID usando TOP 1. Depois use o UNION para trazer tudo em um recordset. Ai fica resolvido.

Compartilhar este post


Link para o post
Compartilhar em outros sites

o TOP 1 fazendo um loop nos id, fica bom, como o amigo citou...

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.