Ir para conteúdo

Arquivado

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

Carcleo

Registros repetidos, como excluí-los?

Recommended Posts

Registros repetidos, como excluí-los?Galera boa de programação, to cum seguinte problema pra resolver e precioso de uma força.É o seguinte.Tenho a query abaixostrSQl = "Select * from TbPerguta where DfPerguta = '"&Request.Form("FormPerghunta")&"' or DfResposta = '"&Request.Form("FormResposta")&"' "Set Rs = server.createobject("ADODB.Recordset")Rs.Open strSQl,Conn , 3, 3Quando na caixa de dialogo dfo formulario, a pessoa digita uma palavra que tem tanto na pergunta quanto na resposta, o resultado da query, me dara a mesma pergunta mais de uma vez.Por isso, eu preciso por uma condição assimSe Rs("Pergunta") ja foi mostrada então mostrar proxima pergunta. Response.Write Rs.___("DfPegunta") Response.Write "<p>" Response.Write Rs.___("DfResposta")Fim do SeComo fazer isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não, mas a fonte de pesquiza -- um texto, tem palavras que tem em varios campos da tabela que alimenta a pergunta.

 

segue o código

 

<%If REQUEST.QUERYSTRING("action") = "consultar" then  Dim busca, onde, pesq, sql, x, strSQL, Rs_SELECT, bg, DfId, DesenharTabela, cor, Rs_FaqSelectModulo, ModuloNome            'Declara as variaveis.  DesenharTabela = False  busca=trim(request.form("chave"))      'Retira os espaços da direita e da esquerda da frase.  busca=split(busca,chr(32))             'Cria um array e separa cada palavra da strig          cor = 1  for x = 0 to Ubound(busca)             'Cria um laço que conta quantas palavras separadas    pesq=busca(x)                        'Entrega à variavel pesq, cada uma das palavras em separado para fazer a busca	pesq = replace(pesq,"a","[a,á,à,ã,â,ä,A]")    'Trata as palavras acentuadas como que sem acento ou com acenmto    pesq = replace(pesq,"e","[e,é,è,ê,ë,E]")    pesq = replace(pesq,"i","[i,í,ì,î,ï,I]")    pesq = replace(pesq,"o","[o,ó,ò,õ,ô,ö,O]")    pesq = replace(pesq,"u","[u,ú,ù,û,ü,U]")    pesq = replace(pesq,"c","[c,ç]")   onde="DfPergunta like  '%"&pesq&"%' or DfMemo  like '%"&pesq&"%' "     'String Sql busca letra por letra'  onde="DfPergunta like  '"&pesq&"' or DfMemo  like '"&pesq&"' "     'String Sql busca palavra por palavra      'Cria o Select    strSQL = "select * from tbFaq where " & onde & ""    Set Rs_SELECT = server.createobject("ADODB.Recordset")    Rs_SELECT.Open strSQl,Conn , 3, 3    if not Rs_SELECT.eof = true  then    'Tem registros, cria o laço para impressão no laço for            if DesenharTabela = False then         'Criando desenho tabela         response.Write "<br><p>"         response.Write "<table border='0' width=95% align=center cellspacing='1', cellpading='2'>"           response.Write "<tr bgcolor=#8193A7>"         response.Write "<td width=50  align=center height=20><font color=#FFFFFF><b>ID</b></fonte></td>"         response.Write "<td width=70  align=center height=20><font color=#FFFFFF><b>Modulo</b></fonte></td>"         response.Write "<td width=320 align=center height=20><font color=#FFFFFF><b>Pergunta</b></fonte></td>"         response.Write "<td width=100 align=center height=20><font color=#FFFFFF><b>Autor</b></fonte></td>"          response.Write "<td width=100 align=center height=20><font color=#FFFFFF><b>Visualizar</b></fonte></td>"          response.Write "</tr>"           DesenharTabela = True            End if	      dim faq_id, faq_modulo, faq_autor, faq_pergunta      Do Until Rs_Select.EOF = True        faq_id = Rs_SELECT("DfId")        faq_modulo = Rs_SELECT("DfModulo")	        faq_autor = Rs_SELECT("DfAutor")	        faq_pergunta = Rs_SELECT("DfPergunta")	        if (cor = 1) then          bg = "#E8ECEE"          cor = 2        else          bg = "#d3dbde"          cor = 1        end if    strSQl = "select * from tbModulo where DfId = '"&faq_modulo&"'"        Set Rs_FaqSelectModulo = server.createobject("ADODB.Recordset")        Rs_FaqSelectModulo.Open strSQl,Conn , 3, 3        ModuloNome = Rs_FaqSelectModulo("DfNome")' Aqui eu preciso fazer o seguinte:'Se uma determinada "&faq_pergunta&" ja foi exibida entao 'passa a exibir a proxima para evitar repetição        response.Write "<tr bgcolor="&bg&">"           response.Write "<td width=50  height=20>"&faq_id&"</td>"        response.Write "<td width=70  height=20>"&ModuloNome&"</td>"        response.Write "<td width=320 height=20>"&faq_pergunta&"</td>"        response.Write "<td width=100 height=20>"&faq_autor&"</td>"         response.Write "<td width=100 height=20 align=center><a href=verfaq.asp?action=1&id="&faq_id&"><img src=../imagens/ver.ico width=25 border=0></a></td>"         response.Write "</tr>"'fim do se        rs_Select.MoveNext      Loop     end if	  next  'Fim do laço for    if DesenharTabela = False then        response.Write "<table align=center width=200 height=50 border=2><tr><td>"        response.Write "<center>Não há resultados</center>"        response.Write "</td></tr></table>"  else        response.Write "</table>"      END IFEND IF%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

tente assim...

 

strSQl = "Select DISTINCT campo from TbPerguta where DfPerguta = '"&Request.Form("FormPerghunta")&"'

or DfResposta = '"&Request.Form("FormResposta")&"' "

 

 

Espero ter ajudado  http://forum.imasters.com.br/public/style_emoticons/default/bye1.gif

<{POST_SNAPBACK}>

[off topic]

Cara tente não usar o DISTINCT nos seus Select's, ele faz perder muito a performance, se possivel tente usar o GROUP BY, mas se não der mesmo use DISTINCT.

[/off topic]

 

[on topic]

Bom, primeiro você verifica uma ordem certa em que os registros se repetem, por exemplo, os registros 2, 3 e 4 são iguais, o 45, 46, 47 também, então você vai ordenar o seu SELECT pelo ID (isso é um exemplo, muito bom se estiver assim), entao depois de ordenado, no seu IF você faz uma comparação pela pergunta. Se ela for diferente a anterior voce imprime na tela, se for igual ele passa batido no IF e vai para o pxoximo registro. O seu IF fica assim:

 

ASP

 = 

[/on topic]

 

Espero ter ajudado ai.

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.