Ir para conteúdo

POWERED BY:

Arquivado

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

Argos

[Resolvido] Mostrar apenas o 1° registro diferente

Recommended Posts

Boa tarde!

 

Tenho uma tabela em que alguns dos campos são mes, imagem e titulo . Há vários registros em que mês é janeiro, outros tantos fevereiro..e assim vai.

 

Eu gostaria que aparecesse janeiro escrito apenas junto a primeira imagem e titulo de janeiro, fevereiro escrito apenas na 1° de fevereiro....

 

Na vdd expliquei conforme a lógica que estou imaginando

 

Pra explicar de outra forma, seria como se houvesse o título "Janeiro" e todos os respectivos aparecessem abaixo, ai começaria "Fevereiro"..

 

Será possível fazer com if, else, while...? Ou é melhor de outra forma? Como?

 

muito obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

faça isso com um simples if dentro do laço de repetição que lista os mesmos

Compartilhar este post


Link para o post
Compartilhar em outros sites

você tb pode usar o SELECT TOP 1

varmes="janeiro"

SELECT TOP 1 * FROM tabela WHERE mes = '"&varmes&"' ORDER BY id desc "

Compartilhar este post


Link para o post
Compartilhar em outros sites

xanburzum ele nao quer selecionar so um ele quer que apareça apenas o mes como se fosse um titulo antes do 1º registro daquela ocorrencia

 

por isso creio que um if dentro do laço resolva ja que ele pode continuar selecionando da forma atual

Compartilhar este post


Link para o post
Compartilhar em outros sites

ok, entendi...

no caso um laço de repetiçao (if)

com os devidos critérios, resolve....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mário...realmente não quero selecionar só um.

Laço de repetição é o loop, certo?

 

Sou novo em asp.. não estou conseguindo fazê-lo

será q vcs poderiam me dar mais uma força.. um exemplo talvez

 

valeu!

Compartilhar este post


Link para o post
Compartilhar em outros sites

como esta lsitando os registros?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Argos, seria isso que você precisa?

 

cont_prox = cont_prox + 1
grupo_new = rs("sub_tipo")
if grupo_new <> grupo_old then
   response.Write(rs("sub_tipo"))
end if
grupo_old = grupo_new

Compartilhar este post


Link para o post
Compartilhar em outros sites

é algo assim desisto

 

so para melhorar um pouco o desempenho a ultima linha pode estar dentro do if pois na verdade so precisa alterar o valor quando ocorrer a mudança

 

mas é so esperar o membro se manifestar sobre a forma como esta listando para auxilia-lo na adaptação do codigo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eis o código:

<% 
While ((Repeat1__numRows <> 0) AND (NOT Recordset1.EOF)) 
%>
				 <div align="center"><span class="style3"><%=(Recordset1.Fields.Item("mesInicial").Value)%></span></span>
				 </div>
			  <table width="520" border="1" align="center" cellpadding="0" cellspacing="0" bordercolor="#F7CB00">
				  <tr>
					<td width="125" rowspan="2"><img src="imagens/eventos/<%=(Recordset1.Fields.Item("imagem").Value)%>" width="125" height="94"/></td>
					<td width="395" height="47" align="center" valign="middle" class="style3"><b><%=(Recordset1.Fields.Item("evento").Value)%></b></td>
				  </tr>
				  <tr>
					<td height="21" align="center" valign="middle" class="style2"><%=(Recordset1.Fields.Item("data").Value)%></td>
				  </tr>
			  </table>
			  <br />
			  <% 
  Repeat1__index=Repeat1__index+1
  Repeat1__numRows=Repeat1__numRows-1
  Recordset1.MoveNext()
Wend
%>

Eu gostaria que o mês aparecesse aqui:

<%=(Recordset1.Fields.Item("mesInicial").Value)%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Argos,

não entendi muito bem o que você deseja, mas pelo que entendi não seria o caso de um usar um distinct em sua sql?

SQL = "SELECT DISTINCT(mes) ..."

abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

É quase isso custellinha.. o problema é q com distinct ele só me retornará um registro de janeiro, um de fevereiro...eu quero q todos os registros apareçam, mas com o nome dos meses em cima apenas do primeiro registro respectivo..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desculpe desisto..

Não conhecia o select distinct e numa olhada rápida acabei me informando mal...Agora que você disse pora eu insistir nisso, dei mais umas lidas e realmente vi que deverá mesmo funcionar.

 

Testei-o e alguns problemas surgiram:

Meu select ficou:

"SELECT DISTINCT mesInicial, data, imagem, evento FROM eventos

 

Mas ai ele distingue os registros de todos os campos escritos ali..

 

Acrescentei "group by mesInicial" ao select, numa dica que li num forum aki do imasters mesmo..mas agora aparece:

 

Você tentou executar uma consulta que não inclui a expressão 'data' especificada como parte de uma função agregada.

 

Alguma idéia de onde estou errando?

Compartilhar este post


Link para o post
Compartilhar em outros sites

mantenha o seu select como antes

eu tinha esse problema tb, e achei a solucao aqui no forum, so nao digo quem foi pq nao lembro :)

mas esse codigo resolveu meu problema

 

grupo_new = rs("sub_tipo")

if grupo_new <> grupo_old then

response.Write(rs("sub_tipo"))

end if

grupo_old = grupo_new

 

as 2 principais linhas que fazem funcionar sao essas

1) if grupo_new <> grupo_old then

2) grupo_old = grupo_new

 

veja o funcionamento que você vai entender como funciona

nao tem misterio

 

roda ai com o select antigo e ve no que da

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

tem que parar de gerar codigo no DW fica horrivel

 

mas seria algo assim

 

<%

Mes = ""

While ((Repeat1__numRows <> 0) AND (NOT Recordset1.EOF))

MesDB = Recordset1.Fields.Item("mesInicial").Value
IF Mes <> MesDB THEN
	Mes = MesDB
%>


				 <div align="center"><span class="style3"><%=Mes%></span></span>
				 </div>

<%END IF%>

			  <table width="520" border="1" align="center" cellpadding="0" cellspacing="0" bordercolor="#F7CB00">
				  <tr>
					<td width="125" rowspan="2"><img src="imagens/eventos/<%=(Recordset1.Fields.Item("imagem").Value)%>" width="125" height="94"/></td>
					<td width="395" height="47" align="center" valign="middle" class="style3"><b><%=(Recordset1.Fields.Item("evento").Value)%></b></td>
				  </tr>
				  <tr>
					<td height="21" align="center" valign="middle" class="style2"><%=(Recordset1.Fields.Item("data").Value)%></td>
				  </tr>
			  </table>
			  <br />
			  <%
  Repeat1__index=Repeat1__index+1
  Repeat1__numRows=Repeat1__numRows-1
  Recordset1.MoveNext()
Wend
%>

Deixei bem separado para indetificar o que foi alterado

 

Como disse no inicio é um simples IF

Compartilhar este post


Link para o post
Compartilhar em outros sites

que bom que resolveu

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.