Ir para conteúdo
Fórum Script Brasil
  • 0

Sql Para Recuperar Apenas Valores Repetidos


LukeSkywalker

Pergunta

Prezados Colegas

Tenho uma tabela com o ID. Esse campo não é auto numerado. Preciso listar somente registros cujo campo ID tenha valores repetidos. Ou seja se tiver outro registro na tabela com o mesmo ID preciso que esses registros sejam listados.

tem como montar uma instrução SQL pra isso ?

Obrigado.

Mauro Junior

Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0

sql = "select * from TABELA"

set tab = conexao.execute(sql)

contador=0
while not tab.eof

if tab("id") = 1 then
response.write tab("id") & "<br>"
contador = contador + 1
end if

tab.movenext
wend

if contador= 0 then
response.write "não existem dados"
end if
ou
sql = "select * from TABELA where id=1"

set tab = conexao.execute(sql)

contador=0
while not tab.eof

response.write tab("id") & "<br>"
contador = contador + 1

tab.movenext
wend

if contador=0 then
response.write "não existem dados"
end if

Link para o comentário
Compartilhar em outros sites

  • 0

bom, você quer ver todos os registros repetidos, não é isso?

só eles?

você poderia fazer como numa pesquisa, não?

ID = request.form("id")

sql = "select * from Tabela Where id="&ID

Set RS = Server.......(você já sabe..)

RS.open sql, Conn, ....(você também já sabe)

depois lista usando um (While...movenext)

se não for isso, então quando achar um jeitinho posta ai, falows!

Link para o comentário
Compartilhar em outros sites

  • 0
Com todo respeito

Não falei nada sobre contador de registros...desculpe leia novamente a dúvida cho que expliquei o que preciso..se alguém puder me ajudar Agradeço

ai ai ai...... eu coloquei um contador pra depois fazer a verificação dos registros..... se você não coloca um contador e a sua tabela retorna 0 resultados a tela irá dar erro....

Link para o comentário
Compartilhar em outros sites

  • 0

editando, já q sairam duas respostas..

se o problema é o contador entaum:

sql = "select * from TABELA"

set tab = conexao.execute(sql)

while not tab.eof

if tab("id") = 1 then
response.write tab("id") & "<br>"
end if

tab.movenext
wend

ou
sql = "select * from TABELA where id=1"

set tab = conexao.execute(sql)

while not tab.eof

response.write tab("id") & "<br>"

tab.movenext
wend

E tb com todo o respeito, teste antes de postar. vlw

Link para o comentário
Compartilhar em outros sites

  • 0
Prezado Colega

Dessa forma eu teria que informar todos os Possíveis IDs cadastrados ?

acho meio inviável numa tabela com mais de 80.000 cadastros.

Mesmo assim Obrigado.

Eu li sobre uma instrução Group by....alguém sabe me ajudar ?

Obrigado

Luke...

eu coloquei 1 para exemplo. Se por exemplo você tem um form antes, é por ele informar qual a id. ai sim ficaria

sql = "select * from TABELA where id= " & Request.form("id")

Link para o comentário
Compartilhar em outros sites

  • 0

A solução abaixo funcionou perfeitamente. Não preciso informar nada.

Basta executar o script abaixo e os registros da coluna ID com valores repetidos serão Listados.

Pode fechar o tópico.

valeu pela ajuda gente

<!--#include file="conexao.inc"-->

<%

dim conexaodb

call abreConexao

'***** Recuperando os valores da Coluna(id) que são repetidos e armazenando na query(record set) rsSQL

sql = "SELECT id, COUNT(*) FROM tabNome GROUP BY id HAVING COUNT(*) > 1 ORDER BY id desc"

set rsSQL = conexaodb.execute(sql)

'*****Percorrendo a query rsSQL e armazenando os valores da coluna ID em uma variável para montar a instrução SQL que Listará os dados de todos os registros com os IDS ecnontrados na query acima

if not rsSQL.eof then '*** Se tiver alguma coisa a query vai pro primeiro registro

rsSql.moveFirst

do while not rsSql.eof '******Loop percorrendo a query e armazenando os Ids na variável

varIdsRepetidos = varIdsRepetidos & rsSql("id")&","

rsSql.movenext

loop

end if

'*******Eliminando a última vírgula para montagem correta da Instrução

varIdsRepetidos =left(varIdsRepetidos,(len(varIdsRepetidos)-1))

'****Montando Intrução para recuperar todas as colunas dos registros com os Ids Repetidos

sqlRepetidos = "SELECT * FROM tabNome WHERE id IN("&varIdsRepetidos&")"

set rsRepetidos = conexaodb.execute(sqlRepetidos)

'****Exibindo os dados dos Registros encontrados aqui só mandei imprimir na tela no navegador.

do while not rsRepetidos.eof

response.write rsRepetidos("Nome") & " "&rsRepetidos("codigo") & " "&rsRepetidos("id")&"<br>"

rsRepetidos.moveNext

loop

%>

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...